2017-09-30 23 views
-1

我得到這個列表如何將列表與列表進行比較並根據列表移動它們?

['a', 'c', 'g', 'w', 'Q', 'front', 'Z'] 

和列表的列表:

[[0, 1, 1, 0,a], [1, 0, 2, 0,c], [1, 2, 0, 0,w], [0, 0, 0, 0,Q], [2, 0, 0, 15, 2, 'g'], [12, 0, 2, 3, 0, 2, 'front'], [0, 0, 0, 5, 2, 0, 'Z']] 

,我想根據我的列表中,其中字母來交換項目,使我的輸出將是:

[[0, 1, 1, 0,a], [1, 0, 2, 0,c], [2, 0, 0, 15, 2, 'g'],[1, 2, 0, 0,w],[0, 0, 0, 0,Q], [12, 0, 2, 3, 0, 2, 'front'], [0, 0, 0, 5, 2, 0, 'Z']] 

編輯:數字必須與字母一起移動。

+0

你舉的例子是根本不清楚項目僅僅是如何取代。請給出口頭描述你的意思。 –

回答

0

你可以試試這個:

a1 = ['a', 'c', 'g', 'w', 'Q', 'front', 'Z'] 
a2 = [[0, 1, 1, 0,'a'], [1, 0, 2, 0,'c'], [1, 2, 0, 0,'w'], [0, 0, 0, 0,'Q'], [2, 0, 0, 15, 2, 'g'], [12, 0, 2, 3, 0, 2, 'front'], [0, 0, 0, 5, 2, 0, 'Z']] 
new_dict = {i[-1]:i for i in a2} 
new_list = [new_dict[i] for i in a1] 

輸出:

[[0, 1, 1, 0, 'a'], [1, 0, 2, 0, 'c'], [2, 0, 0, 15, 2, 'g'], [1, 2, 0, 0, 'w'], [0, 0, 0, 0, 'Q'], [12, 0, 2, 3, 0, 2, 'front'], [0, 0, 0, 5, 2, 0, 'Z']] 
+0

我需要的數字與字母作爲well.For示例一起移動,[2,0,0,15,2中, 'G'],[1,2,0,0,W] ...等 –

+0

@ SookYeeLim沒問題。請參閱我最近的編輯。 – Ajax1234

0
l = ['a', 'c', 'g', 'w', 'Q', 'front', 'Z'] 
ll = [[0, 1, 1, 0,'a'], [1, 0, 2, 0,'c'], [1, 2, 0, 0,'w'], [0, 0, 0, 0,'Q'], [2, 0, 0, 15, 2, 'g'], [12, 0, 2, 3, 0, 2, 'front'], [0, 0, 0, 5, 2, 0, 'Z']] 

sorted(ll, key=lambda x: l.index(x[-1])) 

輸出:

[[0, 1, 1, 0, 'a'], 
[1, 0, 2, 0, 'c'], 
[2, 0, 0, 15, 2, 'g'], 
[1, 2, 0, 0, 'w'], 
[0, 0, 0, 0, 'Q'], 
[12, 0, 2, 3, 0, 2, 'front'], 
[0, 0, 0, 5, 2, 0, 'Z']] 
0

如果你願意,你可以試試這個:

list_a = ['a', 'c', 'g', 'w', 'Q', 'front', 'Z'] 
list_b = [[0, 1, 1, 0,'a'], [1, 0, 2, 0,'c'], [1, 2, 0, 0,'w'], [0, 0, 0, 0,'Q'], [2, 0, 0, 15, 2, 'g'], [12, 0, 2, 3, 0, 2, 'front'], [0, 0, 0, 5, 2, 0, 'Z']] 


sorted_list=[] 
for i in list_a: 
    for j in list_b: 
     if i==j[-1]: 
      sorted_list.append(j) 

print(sorted_list) 

在一個在線解決方案:

print([j for i in list_a for j in list_b if i==j[-1]]) 
相關問題