Skip to content Skip to sidebar Skip to footer

Slicing Out A Specific From A List

I have one list and I want to print out all elements of it but skip one specific. a = [1,2,3,4,5,6,7,8,9] I want to print out: 1,3,4,5,6,7,8,9 (in a column like a regular for-lo

Solution 1:

Just slice on both sides and concatenate:

defskip_over(lst, i):
    return lst[:i] + lst[i + 1:]

skip_over([1, 2, 3, 4, 5], 1) # [1, 3, 4, 5]

If you want to skip over all occurrences of a value, filter with a list comprehension:

defskip_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]

If you want to skip over the first occurrence of a value, then use index to get its index:

defskip_first(lst, v):
    try:
        i = lst.index(v)
    except ValueError:
        # value not in list so return whole thingreturn lst
    return lst[:i] + lst[i + 1:]

skip_first([1, 2, 3, 2, 4, 5], 2) # [1, 3, 2, 4, 5]

Solution 2:

  1. If you specify the element to be skipped by its position (index):

    for position, element in enumerate(a):
        if position != specified_position:
            print(element)
    
  2. If you specify the element to be skipped by its value:

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

Post a Comment for "Slicing Out A Specific From A List"