从 Python 中的元组列表中获取第 N 个元素
Get the Nth element from a list of tuples in Python
使用列表推导式获取列表中每个元组的第 N 个元素,例如
result = [tup[N] for tup in list_of_tuples]
. 列表理解遍历列表并返回每个元组的第 N 个元素。
主程序
list_of_tuples = [('a', 1, '!'), ('b', 2, '@'), ('c', 3, '#')] first = [tup[0] for tup in list_of_tuples] print(first) # 👉️ ['a', 'b', 'c'] second = [tup[1] for tup in list_of_tuples] print(second) # 👉️ [1, 2, 3] last = [tup[-1] for tup in list_of_tuples] print(last) # 👉️ ['!', '@', '#']
我们使用列表理解来获得一个包含每个元组的第 N 个元素的新列表。
列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。
在每次迭代中,我们访问特定索引处的元组元素并返回结果。
Python 索引是从零开始的,因此元组中的第一个元素的索引为
0
,第二个元素的索引为 ,依此类推1
。
当索引以负号开头时,我们从元组的末尾开始倒数。例如,索引-1
使我们能够访问最后一个元素、-2
倒数第二个元素等。
或者,您可以使用for
循环。
使用for
循环从元组列表中获取第 N 个元素
要获取列表中每个元组的第 N 个元素:
- 声明一个新变量并将其设置为一个空列表。
- 使用
for
循环遍历元组列表。 - 在每次迭代中,将第 N 个元组元素附加到新列表中。
主程序
list_of_tuples = [('a', 1, '!'), ('b', 2, '@'), ('c', 3, '#')] second = [] for tup in list_of_tuples: second.append(tup[1]) print(second) # 👉️ [1, 2, 3]
我们简单地遍历元组列表并将每个元组的第 N 项附加到新列表。
list.append
()
方法将一个项目添加到列表的末尾。
或者,您可以使用该map()
功能。
主程序
from operator import itemgetter list_of_tuples = [('a', 1, '!'), ('b', 2, '@'), ('c', 3, '#')] second = list(map(itemgetter(1), list_of_tuples)) print(second) # 👉️ [1, 2, 3]
map()函数将一个函数和一个可迭代对象作为参数,并使用可迭代对象的每个项目调用该函数。
operator.itemgetter
类返回一个可调用对象,用于获取指定索引处的项目。
例如,x = itemgetter(1)
然后调用x(my_tuple)
,返回
my_tuple[1]
。
在每次迭代中,我们获取元组的第 N 个元素并将其返回。
该
map()
函数返回一个map
对象,因此我们不得不使用list()
该类将结果转换为列表。您选择哪种方法是个人喜好的问题。我会选择列表理解,因为我发现它更直接、更容易阅读。