Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 28, 2013 01:02:00

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

Убрать список в списке

>>> lst = [(1, 2), (1, 2), (2, 3), (1, 2), (3, 4), (1, 2)]
>>> lst = [i for i in lst if i != (1, 2)]
>>> print(lst)
[(2, 3), (3, 4)]
>>>



Офлайн

#2 Фев. 28, 2013 07:13:56

paraman
Зарегистрирован: 2012-07-10
Сообщения: 170
Репутация: +  1  -
Профиль   Отправить e-mail  

Убрать список в списке

sergeek
from itertools import chain
lst =
def bad(sub, idx):
other = tuple(chain.from_iterable(lst+lst))
return all(v in other for v in sub)

Вроде сработало. Нужно потестить. Про число не вкурил.
Спасибо за помощь.

Отредактировано paraman (Фев. 28, 2013 07:14:59)

Офлайн

#3 Фев. 28, 2013 07:31:39

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Убрать список в списке

с

return all(v in other for v in sub)
отфильтрует те подсписписки, все элементых которых присутствуют в других подсписках
с
return sum(v in other for v in sub) > 1
если в этом подсписке имеется от двух совпадений
paraman
Я бы убрал, хотя бы один. Как видно минимально два.
если ты это имел ввиду

Офлайн

#4 Фев. 28, 2013 09:08:10

paraman
Зарегистрирован: 2012-07-10
Сообщения: 170
Репутация: +  1  -
Профиль   Отправить e-mail  

Убрать список в списке

sergeek
с
Понял. Спасибо, если после тестов будет всё окей. Могу 100р на вебмани закинуть в качестве благодарности.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version