如何从另一个列表中对带有列表索引的zip列表进行排序? 目前,我使用两个循环,效率不高。
0FWEB8,030119,075257,671442647590,184,21,24229,9777A611236814D8,04,PT,TestB82PTResponseTags,00,0FWEB8,24
答案 0 :(得分:3)
使用python字典:
d = dict(zip(L2,L3))
L4 = [d[key] for key in L1]
答案 1 :(得分:3)
要按另一个列表的index
对压缩列表进行排序,可以使用函数sorted()
:
l1 = ['eins', 'zwei', 'drei', 'vier']
l2 = ['zwei', 'eins', 'vier', 'drei']
l3 = ['apfel', 'birne', 'banane', 'kirsche']
l = sorted(zip(l2, l3), key=lambda x: l1.index(x[0]))
# [('eins', 'birne'), ('zwei', 'apfel'), ('drei', 'kirsche'), ('vier', 'banane')]
[i for _, i in l]
# ['birne', 'apfel', 'kirsche', 'banane']
答案 2 :(得分:3)
按照您的原始逻辑,我想您可以进行一些更改以使其起作用:
YYYY-MM-DD hh:mm:ss
可以写成一个衬里:
L4 = []
for e in L1:
i2 = L2.index(e) # looks for the index (i2) of the element e of L1 in L2
L4.append(L3[i2]) # append lo L4 the element at index i2 in L3
print(L4)
#=> ['birne', 'apfel', 'kirsche', 'banane']
答案 3 :(得分:2)
我喜欢@syltruong的答案,但是->to('username')
是另一个选择:
enumerate