根据另一个相同大小的列表反转一个列表中的元素的最 Pythonic 方法是什么?
lista = [1,2,4]
listb = ['yes', 'no', 'yep']
# expecting [-1, 2,-4]
[[-x if y in ['yes','yep'] else x for x in lista] for y in listb]
# yields [[-1, -2, -4], [1, 2, 4], [-1, -2, -4]]
如果 listb[i]
是 yes
或 yep
,则 result[i]
应该与列表
.
也许在列表理解中应用了一个 lambda 函数?
最佳答案
使用 zip
?
>>> [-a if b in ('yes','yep') else a for a,b in zip(lista, listb)]
[-1, 2, -4]
关于pythonic方法在列表上对ifelse进行矢量化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74180341/