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/