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]