Найти - Пользователи
Полная версия: Удалениие элементов списка по условию.
Начало » Python для новичков » Удалениие элементов списка по условию.
1
kt315e
Есть список например [, ,,,]
Необходимо удалить элементы у которых None первый элемент подсписка. Реализую через цикл записи в временный список. Но списки большие, желательно экономить память.
Андрей Светлов
Списки - гигабайтные?
kt315e
Сотни мегабайт, и будут расти.
Zubchick
тогда используйте ленивости
a = [[1,2], [3,4],[None,5],[6,7],[8,9]]
c = (x for x in a if x[0])
kt315e
Zubchick: а что с ‘c’ дальше делать? Не понимаю я генераторов :-(
Zubchick
дальше можно либо опять использовать ленивости через itertools, либо в цикле обойти весь c
>>> a = [[1,2], [3,4],[None,5],[6,7],[8,9]]
>>> c = (x for x in a if x[0])
>>> res = (a * b for a, b in c)
>>> for i in res:
... print i
...
2
12
42
72
>>>
kt315e
Правильно ли я понял: К генератору можно применять ‘in’, но нельзя операцию индекcации?
Zubchick
in в смысле ‘f’ in ‘asdfghj’ применять нельзя, генератор можно обойти в цикле вытаскивая из него по одному значению, либо скомбинировать с другим генератором.
kt315e
Наверное я зря беспокоюсь при работе с временным списком будут создаватся только новые ссылки, а не копии подсписков. Дополнительные затраты памяти относительно небольшие.
kt315e
Zubchick: спасибо внесли ясность.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB