双 if 条件的 Python 列表理解

问题描述 投票:0回答:1

我需要澄清双 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 列表理解方法?

python list-comprehension
1个回答
0
投票

您可以在列表理解中将代码组合在单个表达式中:

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']
© www.soinside.com 2019 - 2024. All rights reserved.