pythonic方法在列表上对ifelse进行矢量化

标签 python

根据另一个相同大小的列表反转一个列表中的元素的最 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]yesyep,则 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/

相关文章:

python - Pandas 对两个数字之间的列的操作

python - 字符串搜索库的结果 - 错误或功能或我的编码错误?

随机字母打字测试中的Python Tkinter属性错误条目

python - 删除列表中指定的某些文件

python - 子字符串中的模式限制 - Python

python - 在 Python 中启用和禁用调试消息

python - 在列表中第一个传递条件的元素后面添加一个元素

Python - 测试属性抛出异常

python - Pandas 在中间行上移动列中的值

python - 循环中 "time.sleep"与 "threading.Timer"的资源使用情况