1

I have two lists as:

a = ['apple', 'mango', 'pear']

b = ['ripe','raw','rotten']

How can I get the following result list of tuples as:

[(('apple', 'mango', 'pear'), 'ripe'), (('apple', 'mango', 'pear'), 'raw'), (('apple', 'mango', 'pear'), 'rotten')]
4

5 回答 5

2

list(itertools.product(a,b)) will use the element in the A.To make the full list as a element, you could use nested list,like:

list(itertools.product([tuple(a)], b)

Result:

[(('apple', 'mango', 'pear'), 'ripe'), (('apple', 'mango', 'pear'), 'raw'), (('apple', 'mango', 'pear'), 'rotten')]
于 2020-09-08T06:02:44.847 回答
1

Have you tried to solve by yourself?

Try this :-

c = []
for i in b:
    c.append((tuple(a), i)) 
print (c) 
于 2020-09-08T05:53:37.787 回答
1

The usual method is to use a list comprehension:

>>> [(tuple(a), x) for x in b]
[(('apple', 'mango', 'pear'), 'ripe'), (('apple', 'mango', 'pear'), 'raw'), (('apple', 'mango', 'pear'), 'rotten')]

If they don't have to be tuples, you can also use zip:

>>> list(zip([a]*len(b), b))
[(['apple', 'mango', 'pear'], 'ripe'), (['apple', 'mango', 'pear'], 'raw'), (['apple', 'mango', 'pear'], 'rotten')]
于 2020-09-08T05:54:36.493 回答
1

Try this in just one line:

[(tuple(a), i) for i in b]

output will be:

[(('apple', 'mango', 'pear'), 'ripe'),
 (('apple', 'mango', 'pear'), 'raw'),
 (('apple', 'mango', 'pear'), 'rotten')]
于 2020-09-08T05:54:38.247 回答
0

You can try this:

a = ['apple', 'mango', 'pear']

b = ['ripe','raw','rotten']

list=[ ]
for i in b:
    k=((tuple((tuple(a),i))))
    list.append(k)

print(list)
于 2020-09-08T06:04:21.333 回答