x = 'green apple'
L = []
for word in x.split():
for letter in word:
L.append(letter)
print(L)
Run Code Online (Sandbox Code Playgroud)
以下产生我想要的内容,其中包含字符串x中的所有字母.如何在一个行代码中使用这两个for循环?
列表推导以相同的方式嵌套循环.因此,最外层的循环位于最内层循环之前.
>>> x = 'green apple'
>>> [c for word in x.split() for c in word]
['g', 'r', 'e', 'e', 'n', 'a', 'p', 'p', 'l', 'e']
Run Code Online (Sandbox Code Playgroud)
我通常不使用嵌套列表推导,因为我发现我并不总是记住顺序,但我知道有些人确实使用它们,因此能够记住它们如何嵌套是有用的.
在这种情况下,我通常更喜欢使用itertools.chain:
import itertools
print list(itertools.chain.from_iterable(x.split()))
Run Code Online (Sandbox Code Playgroud)
x = 'green apple'
print [i for i in x if i !=" "]
Run Code Online (Sandbox Code Playgroud)
你可以直接这样做.
输出:['g', 'r', 'e', 'e', 'n', 'a', 'p', 'p', 'l', 'e']
要么
import re
x = 'green apple'
print re.findall("\S",x)
Run Code Online (Sandbox Code Playgroud)