Вырезание определенного элемента из списка

#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:

  1. Если вы укажете элемент, который будет пропущен по его позиции (индексу):

     for position, element in enumerate(a):
        if position != specified_position:
            print(element)
      
  2. Если вы укажете элемент, который будет пропущен по его значению:

     for element in a:
        if element != specified_value:
            print(element)