Skip to main content
 首页 » 编程设计

python之如何使用 1 for 循环将两个列表添加到 python 中的字典预期结果 {'a' :[1, 2]}

2025年05月04日15zhujiabin

我已经编写了完美运行的代码,但我试图只使用一个 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]}