如何将列表中的偶数相乘?

我正在尝试使用以下代码将列表的偶数相乘:

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]


以上是如何将列表中的偶数相乘?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>