我有一个清单l:
l
l = [22, 13, 45, 50, 98, 69, 43, 44, 1]
对于 45 以上的数字(含),我想加 1;对于小于 45 的数字,我想加 5。
我试过
[x+1 for x in l if x >= 45 else x+5]
但它给出了语法错误。如何在列表推导中实现这样的if– ?else
if
else
您遇到的语法错误是由于列表推导中的位置不正确if-else。在 Python 中,if-else在列表推导中使用语句时,正确的语法是:
if-else
[<expression if condition else other_expression> for item in iterable]
对于您的具体情况,您想要添加1大于或等于的数字45并添加5小于的数字45,正确的列表理解是:
1
45
5
l = [22, 13, 45, 50, 98, 69, 43, 44, 1] # List comprehension with if-else result = [x + 1 if x >= 45 else x + 5 for x in l] print(result)
x + 1 if x >= 45 else x + 5
x``x``45``5
for x in l
x
列表如下l:
输出将是:
[27, 18, 46, 51, 99, 70, 48, 49, 6]
此代码正确地将条件和转换应用于列表中的每个元素。