我已经编写了完美运行的代码,但我试图只使用一个 for 循环,但它没有成功
这是python代码
lst_one=[1,2,3,4,5,6,7,8]
lst_two=['a','b','c','a','b','c','a','a']
result={}
for createname in range(len(lst_one)):
result[lst_two[createname]]=[]
for value in range(len(lst_one)):
result[lst_two[value]].append(lst_one[value])
print(result)
以上代码结果 {'a': [1, 4, 7, 8], 'b': [2, 5], 'c': [3, 6]}
它使用两个循环工作正常
是否可以使用一个循环而不是两个循环 我正在使用范围循环,而不是 lambda、zip 和 .....
请您参考如下方法:
使用zip + setdefault :
lst_one = [1, 2, 3, 4, 5, 6, 7, 8]
lst_two = ['a', 'b', 'c', 'a', 'b', 'c', 'a', 'a']
result = {}
for o, t in zip(lst_one, lst_two):
result.setdefault(t, []).append(o)
print(result)
输出
{'a': [1, 4, 7, 8], 'b': [2, 5], 'c': [3, 6]}
