我有以下代码,其中有 for 和 if 可选。
lines = ['apple berry Citrus ', 34, 4.46, 'Audi Apple ']
corpus = [ ]
for line in lines:
# Check if the element is string and proceed
if isinstance(line, str):
# Split the element and check if first character is upper case
for word in line.split():
if word[0].isupper():
# Append the word to corpus result
corpus.append(word)
print(corpus)
# Output : ['Citrus', 'Audi', 'Apple']
我试图在列表理解中做到这一点,但失败了。我试过如下。
# corpus = [ word if word[0].isupper() for word in line.split() for line in lines if isinstance(line, str)]
我如何在列表理解中实现这一点?
最佳答案
以下将起作用:
corpus = [
word for line in lines if isinstance(line, str)
for word in line.split() if word[0].isupper()
]
嵌套推导中的作用域一开始可能会令人困惑,但您会注意到 for
和 if
的顺序与嵌套循环中的顺序相同。
关于python - 嵌套 for 和 if 在列表推导中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65829248/