如何将列表中的偶数相乘?
我正在尝试使用以下代码将列表的偶数相乘:
L3 = [1,7,9,9,4,1,11]
L3 = [item * 2 for item in L3 if item % 2 == 0]
print("test ",L3)
但是新列表只包含[8],为什么其他项目都不见了?
回答
您可以尝试以下操作:
L3 = [1,7,9,9,4,1,11]
L3 = [item * 2 if item % 2 == 0 else item for item in L3 ]
print("test ",L3)
回答
您将它们留在了原始列表中。您需要一个条件来带来原始值或新值:
L3 = [item * 2 if item % 2 == 0 else item
for item in L3]
这将为列表中的每个元素选择一个或另一个值。
如果您首先提出“不变”和较短的条款,它的可读性会更强一些:
L3 = [item if item % 2 == 1 else item * 2
for item in L3]
...并且由于布尔代码为 1 (True) 和 0 (False),您可以省略常量:
L3 = [item if item % 2
else item * 2
for item in L3]