Как удалить имена из списка?
li = ['Седьмая печать',
'Ингмар Бергман', '5', '1957',
'Остров проклятых',
'Мартин Скорсезе', '4', '2010',
'Земляничная поляна',
'Ингмар Бергман', '5', '1957',
'Час волка',
'Ингмар Бергман', '3', '1968']
Как удалить каждый 4 элемент списка?
Ответы (3 шт):
Автор решения: Namerek
→ Ссылка
from itertools import cycle, compress
li = [
'Седьмая печать', 'Ингмар Бергман', '5', '1957',
'Остров проклятых', 'Мартин Скорсезе', '4', '2010',
'Земляничная поляна', 'Ингмар Бергман', '5', '1957',
'Час волка', 'Ингмар Бергман', '3', '1968'
]
new_li = [*compress(li, cycle([True, True, True, False]))]
print(new_li)
# ['Седьмая печать', 'Ингмар Бергман', '5', 'Остров проклятых', 'Мартин Скорсезе', '4', 'Земляничная поляна', 'Ингмар Бергман', '5', 'Час волка', 'Ингмар Бергман', '3']
Автор решения: thelonelyangel
→ Ссылка
Думаю, это будет наиболее простым и удобным способом в вашем случае.
new_list = []
for i in range(0, len(li)):
if i % 4 != 3:
new_list.append(li[i])
print(new_list)
Пример вывода на Ваших данных:
['Седьмая печать', 'Ингмар Бергман', '5', 'Остров проклятых', 'Мартин Скорсезе', '4', 'Земляничная поляна', 'Ингмар Бергман', '5', 'Час волка', 'Ингмар Бергман', '3']
Автор решения: Valera
→ Ссылка
new_list = [i for i in li if (li.index(i) + 1) % 4 != 0 or li.index(i) == 0 or li.index(i) == 4]
как вариант