2 回答

TA貢獻1847條經(jīng)驗 獲得超11個贊
一種方法是從兩個列表創(chuàng)建一個字典:
from collections import defaultdict
d = defaultdict(list)
for k,v in zip(list_2, list_1):
d[k].append(v)
# defaultdict(list, {'A': [123, 453], 'B': [444, 567], 'C': [555]})
然后使用列表推導(dǎo)從字典中獲取指定的輸出。
[[[k for _ in range(len(v))], v] for k,v in d.items()]
# [[['A', 'A'], [123, 453]], [['B', 'B'], [444, 567]], [['C'], [555]]]
請注意,嵌套列表結(jié)構(gòu)比動態(tài)創(chuàng)建的一系列列表更容易處理和使用。請注意,從此結(jié)果中,您可以使用基本切片和索引選擇每個結(jié)果子列表

TA貢獻1799條經(jīng)驗 獲得超6個贊
為什么不直接從這兩個列表中創(chuàng)建一個帶有鍵、值的字典,然后根據(jù)值進行排序:
list_I = [123, 453, 444, 555, 567]
list_II = ['A' , 'A', 'B', 'C', 'B']
res = dict(zip(list_I, list_II))
print(sorted(res.items(), key=lambda x:x[1]))
輸出:
[(123, 'A'), (453, 'A'), (444, 'B'), (567, 'B'), (555, 'C')]
添加回答
舉報