gpt4 book ai didi

python - 通过列表理解将元组列表转换为具有重复键的字典?

转载 作者:行者123 更新时间:2023-12-03 16:02:11 24 4
gpt4 key购买 nike

我有一个包含重复的元组列表,我已经使用我在此处找到的代码将它们转换为字典:

https://stackoverflow.com/a/61201134/2415706

mylist = [(a,1),(a,2),(b,3)]    
result = {}
for i in mylist:
result.setdefault(i[0],[]).append(i[1])
print(result)
>>> result = {a:[1,2], b:[3]}

我记得了解到大多数 for 循环都可以重写为推导式,所以我想练习,但在过去的一个小时里我未能完成一项工作。

我读到: https://stackoverflow.com/a/56011919/2415706现在我还没有找到另一个可以做到这一点的库,但我也不确定我想写的这种理解是否是一个坏主意,因为 append 会改变事物。

最佳答案

理解旨在按相互独立的序列映射项目,并且不适合聚合,例如您的问题中的情况,其中项目附加到的子列表取决于前一个项目附加到的子列表。

如果必须,您可以使用嵌套理解生成所需的输出,但它会将在 O(n) 时间复杂度中用循环解决的问题变成一个需要 O(n ^ 2) 的循环:

{k: [v for s, v in mylist if s == k] for k, _ in mylist}

关于python - 通过列表理解将元组列表转换为具有重复键的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62315048/

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