You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用一行map+tuple代码根据evenorodd奇偶性匹配list1/list2元素生成元组?

解决方案

直接调整你的map调用逻辑,让它同时遍历三个列表,这样lambda就能拿到对应位置的元素进行判断选择:

evenorodd=[1,2,3]
list1=['a','b','c']
list2=['A','B','C']
res = tuple(map(lambda x, y, z: y if x % 2 != 0 else z, evenorodd, list1, list2))
print(res)  # 输出: ('a', 'B', 'c')

逻辑说明

  • map函数支持传入多个可迭代对象,它会依次从每个可迭代对象中取出对应位置的元素,作为参数传给lambda表达式。这里就是每次取evenorodd的元素x、list1的元素y、list2的元素z。
  • lambda里的三元运算符逻辑很直观:当x是奇数(x%2 !=0)时返回y(来自list1),否则返回z(来自list2)。
  • 最后用tuple()把map的迭代结果转换成元组,就得到了你想要的输出格式。

内容的提问来源于stack exchange,提问作者bryan tetris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:35:22