maverickreal Ответов: 2

Как напечатать отдельный список общих элементов в двух списках?


а = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
Б = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
напишите программу, которая возвращает список, содержащий только те элементы, которые являются общими между списками (без дубликатов).

Что я уже пробовал:

а = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
Б = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
с=[]

2 Ответов

Рейтинг:
16

Richard MacCutchan

a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
c = [x for x in a for y in b if x == y]
print (set(c))


maverickreal

Да, это работает абсолютно нормально . Спасибо.

Patrice T

Ли удалить дубликаты ?

Richard MacCutchan

Да. Третья строка находит все элементы, которые являются общими для обоих списков, но это оставляет список с двумя элементами "1". То set функция в последней строке удаляет повторяющиеся значения. Если ты напишешь print(c) вы получаете повторяющиеся значения.

Patrice T

Дьявол кроется в деталях :)

maverickreal

Да, это так.

Рейтинг:
10

OriginalGriff

Мы более чем готовы помочь тем, кто застрял, но это не значит, что мы здесь, чтобы сделать все это для вас! Мы не можем сделать всю работу, вам либо платят за это, либо это часть ваших оценок, и было бы совсем несправедливо, если бы мы сделали все это за вас.

Поэтому нам нужно, чтобы вы сделали работу, и мы поможем вам, когда вы застряли. Это не значит, что мы дадим вам пошаговое решение, которое вы можете сдать!
Начните с объяснения, где вы находитесь в данный момент и каков следующий шаг в этом процессе. Затем расскажите нам, что вы пытались сделать, чтобы этот следующий шаг сработал, и что произошло, когда вы это сделали.
И то, что Вы нам показали, ничего не дает, даже не пытается решить проблему. Прочтите свои заметки по курсу и попробуйте подумать о том, как бы вы выполнили задачу вручную. Когда вы рассортируете это в уме - или на бумаге с карандашом - тогда вы можете подумать о том, как это реализовать.

Но мы не просто собираемся вручить вам решение, которое вы можете передать в своей собственной работе!


maverickreal

Мне не платят , и дело не в оценках. Я не могу правильно использовать комбинацию циклов for и if.

OriginalGriff

Тогда вам нужно учиться - и вы делаете это только изучая и пробуя это.
Мы даем вам решение, которое не поможет вам в долгосрочной перспективе, потому что вы понятия не имеете, почему оно работает.

maverickreal

Спасибо!

OriginalGriff

Пожалуйста.
Удачи вам!

maverickreal

а = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
Б = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
с = []
для меня в:
если я в б:
гр.добавить(я)
печать(c)
#Я добрался до этого места , не могли бы вы мне помочь?

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

maverickreal

Я хочу удалить вопрос, но не могу найти кнопку Удалить?

Patrice T

Вы не можете удалить вопрос, как только ответ будет предоставлен.

maverickreal

О , Ничего себе , спасибо, приятель!