#python #arrays #python-3.x #list #slice
#python #массивы #python-3.x #Список #нарезать
Вопрос:
У меня есть один список, и я хочу распечатать все его элементы, но пропустить один конкретный.
a = [1,2,3,4,5,6,7,8,9]
Я хочу распечатать:
1,3,4,5,6,7,8,9
(в столбце, подобном обычному циклу for)
Возможно ли это?
Комментарии:
1. Вы хотите пропустить определенный элемент или индекс?
Ответ №1:
Просто нарежьте с обеих сторон и объедините:
def skip_over(lst, i):
return lst[:i] lst[i 1:]
skip_over([1, 2, 3, 4, 5], 1) # [1, 3, 4, 5]
Если вы хотите пропустить все вхождения значения, выполните фильтрацию с учетом списка:
def skip_all(lst, v):
return [x for x in lst if x != v]
skip_all([1, 2, 3, 2, 4, 5], 2) # [1, 3, 4, 5]
Если вы хотите пропустить первое вхождение значения, используйте index
для получения его индекса:
def skip_first(lst, v):
try:
i = lst.index(v)
except ValueError:
# value not in list so return whole thing
return lst
return lst[:i] lst[i 1:]
skip_first([1, 2, 3, 2, 4, 5], 2) # [1, 3, 2, 4, 5]
Ответ №2:
-
Если вы укажете элемент, который будет пропущен по его позиции (индексу):
for position, element in enumerate(a): if position != specified_position: print(element)
-
Если вы укажете элемент, который будет пропущен по его значению:
for element in a: if element != specified_value: print(element)