Задача на python - Общение Python мододелов

Вопрос Задача на python

Регистрация
5 Ноя 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
Напиши программу, которая принимает натуральное число n, а затем n целых чисел. Выведи только неуникальные числа — в том же порядке, в каком они поступили.
 

Vas

Capitan

Vas

Capitan
Регистрация
16 Июл 2013
Сообщения
95
Репутация
0
Спасибо
0
Монет
0
python
n = int(input())
nums = []
for i in range(n):
x = int(input())
nums.append(x)

duplicates = []
for i in nums:
if nums.count(i) > 1 and i not in duplicates:
duplicates.append(i)

for i in nums:
if i in duplicates:
print(i, end=' ') В первом блоке мы запрашиваем у пользователя количество чисел и сами числа, добавляя их в список nums.
Далее мы создаем список duplicates и добавляем в него неуникальные элементы из списка nums. Если элемент уже есть в списке duplicates, то он не добавляется.
Затем мы выводим все числа из списка nums, которые есть в списке duplicates.
Заметьте, что print(i, end=' ') печатает числа через пробел без перевода строки.
 
Регистрация
12 Ноя 2012
Сообщения
95
Репутация
0
Спасибо
0
Монет
0
Самый простой и самый неэффективный способ: a = [int(input()) for _ in range(int(input()))]
print(*[v for v in a if a.count(v) > 1]) Более эффективный способ: a, b = [int(input()) for _ in range(int(input()))], {}
for v in a: b[v] = b.get(v, 0) + 1
print(*[v for v in a if b[v] > 1])
 
Регистрация
28 Авг 2013
Сообщения
81
Репутация
0
Спасибо
1
Монет
0
Не уникальные в каком смысле? Те, которые имеют повторы, или те, которые повторяют уже появившиеся?

Если в первом смысле (те, которые имеют повторы), то Андрей ранее дал решение.

Если во втором смысле (те, которые повторяют ранее появившиеся), то вот: unique = []
for x in (int(input()) for _ in range(int(input()))):
if x not in unique:
unique.append(x)
else:
print(x)
 
Сверху Снизу