这是我的代码:

evenorodd=[1,2,3]
list1=['a','b','c']
list2=['A','B','C']

res = tuple(map(lambda x: True if x % 2 != 0 else False, evenorodd))

print(res)

输出:
(False, True, False, True)

我想要这个:如果x%2!= 0则为list1的元素(如果evenorodd的元素为奇数)
list2 else的元素(如果evenorodd的元素为偶数)
我寻找的输出:
('a','B','c')

我想一行
res = tuple(map(lambda x: ??? if x % 2 != 0 else ???, evenorodd))

谢谢

最佳答案

您可以使用zip:

evenorodd=[1,2,3]
list1=['a','b','c']
list2=['A','B','C']
new_result = [a if c%2 == 0 else b for a, b, c in zip(list2, list1, evenorodd)]

输出:
['a', 'B', 'c']

09-06 04:07