2014-01-02 2 views
14

Рассмотрим следующие списки:Как получить объединение двух списков, используя понимание списка?

a = ['Orange and Banana', 'Orange Banana'] 
b = ['Grapes', 'Orange Banana'] 

Как получить следующий результат:

c = ['Orange and Banana', 'Orange Banana', 'Grapes'] 
+0

Кто голосовал за закрытие как не по теме? – recursive

+0

@recursive Я этого не сделал, но он уверен, что это оффтоп. – alko

+1

мой вопрос конкретно о понимании списка. этот пост не затрагивает вопрос со списком. есть ответ, но это неверно – Coddy

ответ

4
>>> list(set(a).union(b)) 
['Orange and Banana', 'Orange Banana', 'Grapes'] 

Благодарности @abarnert

+1

Вам не нужен 'set (b)' there; 'union' принимает любые итерации. – abarnert

30

Если у вас есть более чем в 2 списка, вы должны использовать:

>>> a = ['Orange and Banana', 'Orange Banana'] 
>>> b = ['Grapes', 'Orange Banana'] 
>>> c = ['Foobanana', 'Orange and Banana'] 
>>> list(set().union(a,b,c)) 
['Orange and Banana', 'Foobanana', 'Orange Banana', 'Grapes'] 
+1

Зачем ставить 'a, b, c' в список, чтобы снова взорвать этот список? Просто выполните 'set(). Union (a, b, c)'. – abarnert

+0

о, да, хахахаха ... отредактирован. – alvas

+0

@abarnert, BTW, отличная точка в 'next (takewhile (not_, count()))' =) – alvas

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