Python|获取子列表元素直到 N
有时,我们可能会遇到一个实用程序,在该实用程序中,我们需要获取前 N 个子列表元素,而这些元素也只有一个特定的索引。这可以在排队中应用以仅获取最初的 N 人的姓名。让我们讨论一些可以做到这一点的方法。
方法 #1:使用列表推导和列表切片
上面两个强大的Python实用程序在这里也可以用来获得结果,因为列表推导可以提取元素切片可以限制我们需要提取的大小。
# Python3 code to demonstrate
# getting sublist element till N
# using list comprehension + list slicing
# initializing list
test_list = [['Geeks', 1, 15], ['for', 3, 5], ['Geeks', 3, 7]]
# printing original list
print("The original list : " + str(test_list))
# initializing N
N = 2
# using list comprehension + list slicing
# getting sublist element till N
res = [i[0] for i in test_list[ : N]]
# print result
print("The first element of sublist till N : " + str(res))
输出 :
The original list : [['Geeks', 1, 15], ['for', 3, 5], ['Geeks', 3, 7]]
The first element of sublist till N : ['Geeks', 'for']
方法 #2:使用map() + itemgetter() + islice()
上述 3 个功能的组合可用于执行此特定任务。 itemgetter函数获取要提取的元素,islice 切片直到 N 和 map函数组合结果。
# Python3 code to demonstrate
# getting sublist element till N
# using map() + itemgetter() + islice()
from operator import itemgetter
from itertools import islice
# initializing list
test_list = [['Geeks', 1, 15], ['for', 3, 5], ['Geeks', 3, 7]]
# printing original list
print("The original list : " + str(test_list))
# initializing N
N = 2
# using map() + itemgetter() + islice()
# getting sublist element till N
res = list(map(itemgetter(0), islice(test_list, 0, N)))
# print result
print("The first element of sublist till N : " + str(res))
输出 :
The original list : [['Geeks', 1, 15], ['for', 3, 5], ['Geeks', 3, 7]]
The first element of sublist till N : ['Geeks', 'for']