2 回答
TA贡献1847条经验 获得超11个赞
一种方法是从两个列表创建一个字典:
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]})
然后使用列表推导从字典中获取指定的输出。
[[[k for _ in range(len(v))], v] for k,v in d.items()]
# [[['A', 'A'], [123, 453]], [['B', 'B'], [444, 567]], [['C'], [555]]]
请注意,嵌套列表结构比动态创建的一系列列表更容易处理和使用。请注意,从此结果中,您可以使用基本切片和索引选择每个结果子列表
TA贡献1799条经验 获得超6个赞
为什么不直接从这两个列表中创建一个带有键、值的字典,然后根据值进行排序:
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')]
添加回答
举报