2013-11-10 2 views
1

Вопрос:Как удалить несколько элементов из списка>

Дни - это список из 30 элементов. Напишите короткий фрагмент кода, который удалит 5, 12 и 23 элементы из дней.

Единственный способ, которым я могу ответить на этот вопрос, - это использовать сплайсинг. Будет ли это работать x = x [0: 5] + x [6:12] + x [13:23] + x [24:31] ??? Или есть лучший способ?

ответ

0

Для удаления элементов списка по их индексам:

x = [e for i, e in enumerate(x) if i not in [5, 12, 23]] 
+0

не мой путь приемлемым или нет? – user2971015

+0

@ user2971015: посмотрите на оба примера кода: какой код легче понять (что он делает), поддерживать и расширять. Что делать, если вы хотите удалить 10-й элемент вместо 12-го - какие изменения необходимо выполнить в обоих случаях? что менее подвержено ошибкам? Что, если вы обнаружите, что входные индексы основаны на '1' вместо' 0': как бы вы изменили оба примера? (примечание: ['enumerate()'] (http://docs.python.org/3/library/functions.html#enumerate) имеет параметр 'start') Что делать, если индексы указаны как список в переменной? Он должен ответить на ваш вопрос. – jfs

Смежные вопросы