我需要澄清双 if 语句的列表理解。
a = ["apple", "banana", "cherry", "kiwi", 'mango']
c = []
# Conventional method
for b in a:
if 'a' in b:
if b != 'apple':
c.append(b)
print(c)
返回结果为:
['banana', 'mango']
如何改写 Python 列表理解方法?
您可以在列表理解中将代码组合在单个表达式中:
a = ["apple", "banana", "cherry", "kiwi", 'mango']
c = [x for x in a if 'a' in x and x != 'apple']
print(c) # ['banana', 'mango']
或使用条件元素选择的复合多列表理解:
a = ["apple", "banana", "cherry", "kiwi", 'mango']
c = [x for x in [y for y in a if 'a' in y] if x != 'apple']
print(c) # ['banana', 'mango']