Как распечатать элементы одного списка, которые находятся в другом списке? - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть 2 списка, которые имеют несколько похожих значений, я хочу распечатать значения, которые есть только в обоих списках.Я попытался понять список, но он дает мне логический список:

a=[2,3,1,5,7]
b=[2,5,9,3,5,10]
c=[d in a for d in b]
print (c)

, из этого я получаю следующие результаты:

[True, True, False, True, True, False]

, но я хотел, чтобы числа были знакомы в обоих списках.

Ответы [ 3 ]

0 голосов
/ 23 сентября 2018

Вы можете использовать set для сравнения значений, однако я не верю, что это сохраняет порядок:

c = set(a) & set(b)
print('\n'.join(str(i) for i in c))
0 голосов
/ 23 сентября 2018

давайте посмотрим на этот код: [d in a for d in b], d in a вернет True или False, потому что он равен

if d in a:
    return True 
else:
    return False

Так что результат [d in a for d in b] равен [True, True, False, True, True, False]

Лучший способ хотел, чтобы числа, знакомые в обоих списках , были:

a=[2,3,1,5,7]
b=[2,5,9,3,5,10]
print(list(set(a) & set(b))) # [2, 3, 5]
0 голосов
/ 23 сентября 2018

Вы можете условно взять только d из a из b:

c = [d for d in b if d in a]
# Here -----------^
...