gpt4 book ai didi

python - 如何在不使用嵌套 for 循环的情况下将两个列表合并到字典中

转载 作者:IT老高 更新时间:2023-10-28 20:56:53 27 4
gpt4 key购买 nike

我有两个列表:

a = [0, 0, 0, 1, 1, 1, 1, 1, .... 99999]
b = [24, 53, 88, 32, 45, 24, 88, 53, ...... 1]

我想将这两个列表合并到一个字典中,例如:

{
0: [24, 53, 88],
1: [32, 45, 24, 88, 53],
......
99999: [1]
}

一个解决方案可能是使用 for 循环,它看起来并不优雅,例如:

d = {}
unique_a = list(set(list_a))
for i in range(len(list_a)):
if list_a[i] in d.keys:
d[list_a[i]].append(list_b[i])
else:
d[list_a] = [list_b[i]]

虽然这确实有效,但效率低下,并且当列表非常大时会花费太多时间。我想知道构建这样一个字典的更优雅的方法吗?

提前致谢!

最佳答案

您可以使用 defaultdict :

from collections import defaultdict
d = defaultdict(list)
list_a = [0, 0, 0, 1, 1, 1, 1, 1, 9999]
list_b = [24, 53, 88, 32, 45, 24, 88, 53, 1]
for a, b in zip(list_a, list_b):
d[a].append(b)

print(dict(d))

输出:

{0: [24, 53, 88], 1: [32, 45, 24, 88, 53], 9999: [1]}

关于python - 如何在不使用嵌套 for 循环的情况下将两个列表合并到字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47045220/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com