全面列表中的两个for循环

时间:2015-12-08 04:35:18

标签: python list loops

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

以下产生我想要的内容,该列表包含字符串x中的所有字母。如何在一个行代码中使用这两个for循环?

5 个答案:

答案 0 :(得分:6)

列表推导以相同的方式嵌套循环。因此,最外面的循环位于最里面的循环之前。

>>> 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()))

答案 1 :(得分:5)

x = 'green apple'
print [i for i in x if i !=" "]

您可以直接执行此操作。

输出:['g', 'r', 'e', 'e', 'n', 'a', 'p', 'p', 'l', 'e']

import re
x = 'green apple'
print re.findall("\S",x)

答案 2 :(得分:2)

x = 'green apple'
print [letter for letter in x if not letter == ' ']

也适用于行

答案 3 :(得分:1)

如果您可以离开空间,只需使用列表功能:

web: gunicorn main:app --log-file=-

省略空格:

__init__.py

答案 4 :(得分:0)

根本不需要for循环。你可以这样做:

>>> x = "green apple"
>>> list(x)
['g', 'r', 'e', 'e', 'n', ' ', 'a', 'p', 'p', 'l', 'e']