2014-02-13 3 views
-2

Как присоединиться к 2 спискам с элементами рядом? Например:Объединение 2 списков, Python

list1 = ["they" , "are" ,"really" , "angry"] 
list2 = ["they" , "are" ,"seriously" , "angry"] 

Я хочу выход как:

list3 = [("they","they"),("are","are"),("really","seriously"),("angry","angry")] 

Вышеприведенные выглядит как список кортежей, хотя, и если приведенный выше список были столбцы с каждым словом в строке, как бы я прилагаю List2 перечислить1?

+3

Использование [zip] (http://docs.python.org/2/library/functions.html#zip). – Yuushi

+1

этот тип вопроса есть много в таком случае, проверьте. –

+2

Возможно, стоит упомянуть, что если списки имеют неровную длину, 'zip' будет отбрасывать оставшиеся элементы более длинного списка. Вы можете использовать [itertools.izip_longest] (http://docs.python.org/2/library/itertools.html#itertools.izip_longest), если это так. – msvalkon

ответ

10

Использование zip():

>>> list1 = ["they" , "are" ,"really" , "angry"] 
>>> list2 = ["they" , "are" ,"seriously" , "angry"] 
>>> list3 = zip(list1, list2) 
>>> list3 
[('they', 'they'), ('are', 'are'), ('really', 'seriously'), ('angry', 'angry')] 
+0

что делать, если у меня есть 2 столбца вместо? –

3

Это еще одно решение,

>>> [ (val,list2[idx]) for idx, val in enumerate(list1)] 
[('they', 'they'), ('are', 'are'), ('really', 'seriously'), ('angry', 'angry')] 

Кстати молнии() является хорошим решением.

Смежные вопросы