python - 综合列表中的两个for循环

标签 python list loops

x = 'green apple'
L = []
for word in x.split():
    for letter in word:
        L.append(letter)
    print(L)

下面生成我想要的,它是一个包含字符串 x 中所有字母的列表。如何在一行代码中包含这两个 for 循环?

最佳答案

列表推导式的嵌套方式与 for 循环的嵌套方式相同。因此,最外层循环出现在最内层循环之前。

>>> x = 'green apple'
>>> [c for word in x.split() for c in word]
['g', 'r', 'e', 'e', 'n', 'a', 'p', 'p', 'l', 'e']

我通常不使用嵌套列表理解,因为我发现我并不总是记得顺序,但我知道有些人确实使用它们,所以能够记住如何使用它们很有用他们嵌套。

在这种情况下,我通常更喜欢使用 itertools.chain:

import itertools
print list(itertools.chain.from_iterable(x.split()))

关于python - 综合列表中的两个for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34148079/

相关文章:

python - 获取一个列表并打印所有不等于 0 的元素的索引

list - 删除 Redis 列表中的所有条目

function - OCaml:迭代列表并跳过错误构造函数的元素

java - Java无限循环是否需要增量

python - 使用 PyYAML 有选择地转储对象属性

python - 使用 webkit 的 Python 桌面应用程序的嵌入式 WSGI 后端

python - sys.argv 不适用于具有先前 .py 关联的系统

python - 加法和 += 给出列表的不同结果(深度优先搜索)

c - 优化 C 循环以获得数组的对角线

python - Django:我的 css 静态路径不存在