例如,我有以下两个列表
listA = ['one','two','three'] 数组listB = [ '苹果', '樱桃', '西瓜']
如何使用map
和lambda
将这两个列表配对以获得此输出?
one apple
two cherry
three watermelon
我知道如何通过列表理解来实现它,
[print(listA[i], listB[i]) for i in range(len(listA))]
但我找不到map
和lambda
解决方案。有什么想法吗?
答案 0 :(得分:6)
最简单的解决方案是简单地使用zip
,如下所示:
>>> listA=['one', 'two' , 'three']
>>> listB=['apple','cherry','watermelon']
>>> list(zip(listA, listB))
[('one', 'apple'), ('two', 'cherry'), ('three', 'watermelon')]
我想可以使用map
和lambdas,但这会使事情变得不必要,因为这是zip
的理想情况。
答案 1 :(得分:5)
这是我根据你需要得到的东西(map和lambda),
输入:
listA=['one', 'two' , 'three']
listB=['apple','cherry','watermelon']
list(map(lambda x, y: x+ ' ' +y, listA, listB))
输出:
['one apple', 'two cherry', 'three watermelon']
答案 2 :(得分:3)
您可以使用下面的zip
:
for item in zip(list_1, list_2):
print(item)
答案 3 :(得分:3)
让我们考虑有两个列表,例如 list1,list2。我们可以在列表或元组类型中将它们配对。
list1=['1', '2' , '3']
list2=['3','2','1']
output = list (map ( lambda x,y: [x,y], list1,list2 ))
print(output)
输出:
[['1', '3'], ['2', '2'], ['3', '1']]
答案 4 :(得分:1)
特别使用map和lambda作为问题......
list(map(lambda tup: ' '.join(list(tup)), zip(listA,listB)))
虽然我可能会打破它以使其更具可读性
zipped = zip(listA,listB)
tup2str = lambda tup: ' '.join(list(tup))
result = list(map(tup2str, zipped))
# ['one apple', 'two cherry', 'three watermelon']
已编辑 - 根据以下评论,listCombined = list(zip(listA,listB))
是一种浪费
答案 5 :(得分:0)
使用list comprehension和zip:
listA=['one', 'two' , 'three']
listB=['apple','cherry','watermelon']
new_list = [a+" "+b for a, b in zip(listA, listB)]
输出:
['one apple', 'two cherry', 'three watermelon']