📜  Python|获取元素直到列表中的特定元素

📅  最后修改于: 2022-05-13 01:54:37.922000             🧑  作者: Mango

Python|获取元素直到列表中的特定元素

有时,在使用Python列表时,我们可能需要删除特定元素之后的所有元素,或者获取特定元素之前的所有元素。这两个都是类似的问题,找到解决方案总是有帮助的。让我们讨论可以执行此任务的某些方式。

方法 #1:使用index() + 列表切片
使用这些功能的组合可以解决这个问题。 index()可用于查找所需元素的索引,列表切片可以执行获取元素的剩余任务。

# Python3 code to demonstrate working of
# Get elements till particular element in list
# using index() + list slicing
  
# initialize list
test_list = [1, 4, 6, 8, 9, 10, 7]
  
# printing original list
print("The original list is : " + str(test_list))
  
# declaring elements till which elements required
N = 8
  
# Get elements till particular element in list
# using index() + list slicing
temp = test_list.index(N)
res = test_list[:temp]
  
# printing result
print("Elements till N in list are : " + str(res))
输出 :
The original list is : [1, 4, 6, 8, 9, 10, 7]
Elements till N in list are : [1, 4, 6]

方法#2:使用生成器
也可以使用生成器函数执行此任务,该生成器函数使用yield来获取元素,直到所需的元素,并在该元素之后打破 yield。

# Python3 code to demonstrate working of
# Get elements till particular element in list
# using generator
  
# helper function to perform task
def print_ele(test_list, val):
    for ele in test_list:
        if ele == val:
            return
        yield ele
  
# initialize list
test_list = [1, 4, 6, 8, 9, 10, 7]
  
# printing original list
print("The original list is : " + str(test_list))
  
# declaring elements till which elements required
N = 8
  
# Get elements till particular element in list
# using generator
res = list(print_ele(test_list, N))
  
# printing result
print("Elements till N in list are : " + str(res))
输出 :
The original list is : [1, 4, 6, 8, 9, 10, 7]
Elements till N in list are : [1, 4, 6]