Auf*_*ind 4 python sorting list
我有一个字符串列表
string_list = ["key_val_1", "key_val_2", "key_val_3", "key_val_4", ...]
Run Code Online (Sandbox Code Playgroud)
和一个包含对象的列表
object_list = [object_1, object_2, object_3,...]
Run Code Online (Sandbox Code Playgroud)
每个对象object_i
都有一个属性key
.
我想按顺序对对象object_list
string_list
进行排序.
我可以做点什么
new_list = []
for key in string_list:
for object in object_list:
if object.key == key:
new_list.append(object)
Run Code Online (Sandbox Code Playgroud)
但必须有更多的pythonic方式,然后这个蛮力的方式.:-)你会如何解决这个问题?
首先,创建一个将对象键映射到对象的字典:
d = dict((x.key, x) for x in object_list)
Run Code Online (Sandbox Code Playgroud)
接下来使用列表推导创建排序列表:
new_list = [d[key] for key in string_list]
Run Code Online (Sandbox Code Playgroud)