有没有办法在列表理解中添加两个值?
[[x-0.5, x] if x != 0 and x % 30 == 0 else x for x in range(0, 60 + 1, 5)]
我尝试了上面的代码,它返回
[0, 5, 10, 15, 20, 25, [29.5, 30], 35, 40, 45, 50, 55, [59.5, 60]]
我也尝试过
def f(x):
return x-0.5, x
[f(x) if x !=0 and x % 30 == 0 else x for x in range(0, 60 + 1, 5)]
返回
[0, 5, 10, 15, 20, 25, (29.5, 30), 35, 40, 45, 50, 55, (59.5, 60)]
如何去掉支架?
编辑:
这就是我所期待的
[0, 5, 10, 15, 20, 25, 29.5, 30, 35, 40, 45, 50, 55, 59.5, 60]
谢谢
最佳答案
list comprehension 中可以有多个 for 循环:
[y for x in range(0, 60 + 1, 5)
for y in ([x-0.5, x] if x != 0 and x % 30 == 0 else [x])]
产量
[0, 5, 10, 15, 20, 25, 29.5, 30, 35, 40, 45, 50, 55, 59.5, 60]
并且相当于:
result = []
for x in range(0, 60 + 1, 5):
for y in ([x-0.5, x] if x != 0 and x % 30 == 0 else [x]):
result.append(y)
关于python - 如何使用Python中的列表理解将两个元素添加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25495944/