2013-07-08 1 views
1

позволяет предположить, у меня есть два типа итерируемыми, одним из них является список, а другой объект генератора (или, если проще, вид как в списках)Объединение двух различных Iterable типов в Python

список имеет следующие элементы: list = [1,2,3,4,5,6,7,8,9], с другой стороны, генератор дает список кортежей на каждой итерации, полученный список выглядит следующим образом: ylist = [(3,"three"),(4,"four"),(5,"five")].

Я хочу, чтобы получить список, который будет выглядеть так: finallist = [1,2,(3,"three"),(4,"four"),(5,"five"),6,7,8,9].

Как это достичь?

+1

Что произойдет, если список кортежей содержат элементы, которые не присутствуют в другом списке? Например, как вы комбинируете '[1, 2, 3]' с '[(5," five ")]'? – BrenBarn

+3

Вы не объединяете итерации. Конкатенирование будет прикреплять предметы одного к концу другого. – user2357112

+0

Я думаю, вы хотите включить свой фактический код и объяснить, почему вы пытаетесь это сделать. Каков конечный объект, предназначенный для представления? –

ответ

4

Преобразовать возвращенные детали из этого генератора в Словарь, а затем использовать список понимание:

>>> lis = [1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> ylist = [(3, "three"),(4, "four"),(5, "five")] 
>>> dic = dict(ylist) 
>>> [x if x not in dic else (x, dic[x]) for x in lis] 
[1, 2, (3, 'three'), (4, 'four'), (5, 'five'), 6, 7, 8, 9]