gpt4 book ai didi

python - 在Python中迭代单个值和可迭代的混合

转载 作者:太空宇宙 更新时间:2023-11-03 17:00:25 25 4
gpt4 key购买 nike

我正在用 Python 编写一个 for 循环,我想迭代单个对象和对象的扁平列表(或元组)的混合。

例如:

a = 'one'
b = 'two'
c = [4, 5]
d = (10, 20, 30)

我想在 for 循环中迭代所有这些。我认为这样的语法会很优雅:

for obj in what_goes_here(a, b, *c, *d):
# do something with obj

我在itertools中查找了what_goes_here,但我没有看到任何东西,但我觉得我一定错过了一些明显的东西!

我发现的最接近的是 chain,但我想知道是否存在任何东西可以使我的示例保持不变(仅替换 what_goes_here)。

最佳答案

您可以执行此操作,但必须使用 Python 3.5 或更高版本来扩展解包语法。将所有参数放入一个容器(如元组)中,然后将该容器发送到itertools.chain。

>>> import itertools
>>> a = 'one'
>>> b = 'two'
>>> c = [4, 5]
>>> d = (10, 20, 30)
>>> list(itertools.chain((a, b, *c, *d)))
['one', 'two', 4, 5, 10, 20, 30]
>>> list(itertools.chain((a, *c, b, *d)))
['one', 4, 5, 'two', 10, 20, 30]
>>> list(itertools.chain((*a, *c, b, *d)))
['o', 'n', 'e', 4, 5, 'two', 10, 20, 30]

关于python - 在Python中迭代单个值和可迭代的混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35049818/

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