Slicing out a specific from a list

后端 未结 2 1353
逝去的感伤
逝去的感伤 2021-01-26 11:58

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         


        
相关标签:
2条回答
  • 2021-01-26 12:41

    Just slice on both sides and concatenate:

    def skip_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:

    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]
    

    If you want to skip over the first occurrence of a value, then use index to get its 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]
    
    0 讨论(0)
  • 2021-01-26 12:54
    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:
          if element != specified_value:
              print(element)
      
    0 讨论(0)
提交回复
热议问题