Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 20, 2014 19:32:15

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Нахождение повторяющихся элементов в списке.

Здравствуйте. Нужно: чтоб программа принимала на вход список чисел в одной строке и выводила на экран в одну строку значения, которые повторяются в нём более одного раза.
…python3

Отредактировано Stroncy (Ноя. 20, 2014 19:39:08)

Офлайн

#2 Ноя. 20, 2014 19:39:30

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Нахождение повторяющихся элементов в списке.

>>> list_of_num = [1, 1, 2, 3, 3, 4, 5]
>>> print [x for x in set(list_of_num) if list_of_num.count(x) > 1]
[1, 3]

для 3 питона надо взять все то, что после print в круглые скобки:
print ([x for x in set(list_of_num) if list_of_num.count(x) > 1])

Отредактировано botinag (Ноя. 20, 2014 19:41:59)

Офлайн

#3 Ноя. 20, 2014 19:48:29

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Нахождение повторяющихся элементов в списке.

botinag вроде оно но, подскажите как сделать чтоб вывод был без скобок.. просто числа?
..и ввод надо так: str(input()) ?
Например ввёл(через пробел): 1 2 3 4 5 5 6 7 3 1
и получил вывод: 1 3 5

Отредактировано Stroncy (Ноя. 20, 2014 19:54:33)

Офлайн

#4 Ноя. 20, 2014 19:58:59

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Нахождение повторяющихся элементов в списке.

string = input('Vvedite chisla razdelyaya ih probelami: ')
list_of_num = string.split(' ')
res = [x for x in set(list_of_num) if list_of_num.count(x) > 1]
print(' '.join(res))

Отредактировано botinag (Ноя. 20, 2014 19:59:47)

Офлайн

#5 Ноя. 20, 2014 19:59:56

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Нахождение повторяющихся элементов в списке.

Stroncy
подскажите как сделать чтоб вывод был без скобок.. просто числа?

' '.join([x for x in set(list_of_num) if list_of_num.count(x) > 1])

Офлайн

#6 Ноя. 20, 2014 20:05:39

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Нахождение повторяющихся элементов в списке.

botinag
string = input('Vvedite chisla razdelyaya ih probelami: ‘)
list_of_num = string.split(’ ')
res =
print(' '.join(res))
Спасибо, ваш код подошёл ))

Офлайн

#7 Ноя. 21, 2014 03:13:00

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

Нахождение повторяющихся элементов в списке.

Предположим, что вводится миллиард чисел. Нужно без .count() делать.

>>> def f(lst):
...     s = {}
...     for i in lst:
...         n = s.get(i, 0)
...         if n == 0:
...             s[i] = 1
...         elif n == 1:
...             s[i] = 2
...             yield i
... 
>>> list(f([1, 2, 3, 4, 5, 5, 6, 7, 3, 1]))
[5, 3, 1]
>>>

Чтобы по порядку шли, надо потом развернуть один раз.



Отредактировано py.user.next (Ноя. 21, 2014 03:15:40)

Офлайн

#8 Ноя. 21, 2014 03:15:54

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Нахождение повторяющихся элементов в списке.

py.user.next
Предположим, что вводится миллиард чисел. Нужно без .count() делать.
Возможно.. но, тест прошёл ))

Офлайн

#9 Ноя. 21, 2014 03:30:44

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

Нахождение повторяющихся элементов в списке.

Тут проблема в том, что он будет по всему миллиарду проходить на каждом элементе. А те элементы, которые уже выяснены (которые нужно отбросить просто), он всё равно будет подсчитывать.

[5, 5, 5, 5, 5, 5, 5, 5]
Вот он в середине встанет и начнёт считать от начала до конца, хотя к середине уже ясно, что пятёрка встречается два раза.



Офлайн

#10 Март 30, 2016 14:44:02

hottabov
Зарегистрирован: 2016-03-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Нахождение повторяющихся элементов в списке.

Задачка взята со степика, ТС, ты все так задачи решаешь?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version