For example, I have following two lists
listA=[\'one\', \'two\' , \'three\'] listB=[\'apple\',\'cherry\',\'watermelon\']
How can I pair those two lists to
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
.
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']
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']
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
You can use zip like below:
for item in zip(list_1, list_2):
print(item)