gpt4 book ai didi

python - 如何编写列表理解来创建集合列表?

转载 作者:太空宇宙 更新时间:2023-11-04 09:06:06 25 4
gpt4 key购买 nike

我尝试使用

创建集合列表 [set([0]), set([1]), set([2]),..]
>>> [set(i) for i in range(9)]

但结果并不好

Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
TypeError: 'int' object is not iterable

如何使用列表理解创建该列表?可能吗?

最佳答案

要创建具有列表推导式的 [set([0]), set([1]), set([2]),..],您可以使用:

>>> [{i} for i in range(5)] 
[set([0]), set([1]), set([2]), set([3]), set([4])]

除非您使用的是 2.7 版之前的任何 Python 版本,否则请使用:

>>> [set((i,)) for i in range(5)]
[set([0]), set([1]), set([2]), set([3]), set([4])]

但是,创建集合列表似乎有点愚蠢,其中每个集合都是递增序列的单个整数。无论您想完成什么,最好以不同的方式完成,请咨询 The XY Problem并确保您不会陷入其中。

根据您要实现的目标,可能有更好的方法来存储您的数据或执行您要执行的逻辑。

注意:

最初我写的是[set([i]) for i in range(5)] 但是在对不同的选项进行计时之后,我意识到将整数转换为单项列表比较浪费而不是将其转换为元组,所以我更改了答案,随后又将其更改为使用 set literal ,时间如下:

>python -mtimeit "[{i} for i in range(5)]"
1000000 loops, best of 3: 0.853 usec per loop

>python -mtimeit "[set((i,)) for i in range(5)]"
1000000 loops, best of 3: 1.64 usec per loop

>python -mtimeit "[set([i]) for i in range(5)]"
1000000 loops, best of 3: 1.87 usec per loop

关于python - 如何编写列表理解来创建集合列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20742936/

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