Python How to pair two list by lambda and map

后端 未结 5 1409
北海茫月
北海茫月 2021-01-17 13:56

For example, I have following two lists

listA=[\'one\', \'two\' , \'three\'] listB=[\'apple\',\'cherry\',\'watermelon\']

How can I pair those two lists to

相关标签:
5条回答
  • 2021-01-17 14:32

    The easiest solution would be to simply use zip as in:

    >>> listA=['one', 'two' , 'three']
    >>> listB=['apple','cherry','watermelon']
    >>> list(zip(listA, listB))
    [('one', 'apple'), ('two', 'cherry'), ('three', 'watermelon')]
    

    I guess it would be possible to use map and lambdas, but that would just needlessly complicate things as this is really the ideal case for zip.

    0 讨论(0)
  • 2021-01-17 14:33

    Here what I got based on what you need (map and lambda),

    Input:

    listA=['one', 'two' , 'three']
    listB=['apple','cherry','watermelon']
    list(map(lambda x, y: x+ ' ' +y, listA, listB))
    

    Output:

    ['one apple', 'two cherry', 'three watermelon']
    
    0 讨论(0)
  • 2021-01-17 14:50

    Using list comprehension and zip:

    listA=['one', 'two' , 'three']
    
    listB=['apple','cherry','watermelon']
    
    new_list = [a+" "+b for a, b in zip(listA, listB)]
    

    Output:

    ['one apple', 'two cherry', 'three watermelon']
    
    0 讨论(0)
  • 2021-01-17 14:53

    specifically using map and lambda as asked...

    list(map(lambda tup: ' '.join(list(tup)), zip(listA,listB)))
    

    though I'd probably break that up to make it more readable

    zipped   = zip(listA,listB)
    tup2str  = lambda tup: ' '.join(list(tup))
    result   = list(map(tup2str, zipped))
    # ['one apple', 'two cherry', 'three watermelon']
    

    EDITED - per comment below, listCombined = list(zip(listA,listB)) was a waste

    0 讨论(0)
  • 2021-01-17 14:58

    You can use zip like below:

    for item in zip(list_1, list_2):
        print(item)
    
    0 讨论(0)
提交回复
热议问题