问题
I am a newbie in python, I have two lists:
l1 = ['a','b','c','d']
l2 = ['new']
i want to get new list like this
l3 = [('a','new'),('b','new'),('c','new'),('d','new')]
What is the best way to combine the two lists?
回答1:
>>> from itertools import product
>>> l1 = ['a','b','c','d']
>>> l2 = ['new']
>>> list(product(l1,l2))
[('a', 'new'), ('b', 'new'), ('c', 'new'), ('d', 'new')]
回答2:
If l2
always just has the one element there is no need to overcomplicate things
l3 = [(x, l2[0]) for x in l1]
回答3:
See the itertools docs.
In particular, use product for a Cartesian product:
from itertools import product:
l1 = ['a','b','c','d']
l2 = ['new']
# Cast to list for l3 to be a list since product returns a generator
l3 = list(product(l1, l2))
回答4:
>>> from itertools import repeat
>>> l1 = ['a','b','c','d']
>>> l2 = ['new']
>>> zip(l1,repeat(*l2))
[('a', 'new'), ('b', 'new'), ('c', 'new'), ('d', 'new')]
回答5:
You can simply take use of list comprehension without any functions:
l3 = [(x, y) for x in l1 for y in l2]
来源:https://stackoverflow.com/questions/10394358/how-to-produce-a-nested-list-from-two-lists-in-python