📜  Python|从列表中的元组访问第 n 个元素

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

Python|从列表中的元组访问第 n 个元素

在使用元组时,我们将不同的数据存储为不同的元组元素。有时,需要从元组中打印特定信息。例如,一段代码只希望打印所有学生数据的名称。让我们讨论一些如何解决这个问题的方法。

方法#1:使用列表推导
列表推导是解决此问题的最简单方法。我们可以只迭代所有索引中的特定索引值并将其存储在一个列表中,然后打印它。

# Python3 code to demonstrate 
# get nth tuple element from list
# using list comprehension 
  
# initializing list of tuples
test_list = [(1, 'Rash', 21), (2, 'Varsha', 20), (3, 'Kil', 19)]
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using list comprehension to get names
res = [lis[1] for lis in test_list]
      
# printing result
print ("List with only nth tuple element (i.e names) : " + str(res))

输出 :

The original list is : [(1, 'Rash', 21), (2, 'Varsha', 20), (3, 'Kil', 19)]
List with only nth tuple element (i.e names) : ['Rash', 'Varsha', 'Kil']

方法 #2:使用map() + itemgetter()
map()itemgetter()结合可以以更简单的方式执行此任务。 map()映射我们使用itemgetter()访问的所有元素并返回结果。

# Python3 code to demonstrate 
# get nth tuple element from list
# using map() + itergetter()
from operator import itemgetter
  
# initializing list of tuples
test_list = [(1, 'Rash', 21), (2, 'Varsha', 20), (3, 'Kil', 19)]
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using map() + itergetter() to get names
res = list(map(itemgetter(1), test_list))
      
# printing result
print ("List with only nth tuple element (i.e names) : " + str(res))

输出 :

The original list is : [(1, 'Rash', 21), (2, 'Varsha', 20), (3, 'Kil', 19)]
List with only nth tuple element (i.e names) : ['Rash', 'Varsha', 'Kil']

方法#3:使用zip()
执行此特定任务的最常规和 Pythonic 方式是使用此函数。这会将所有第 n 个元组元素收集到一个容器中并返回结果。这仅适用于Python 2。

# Python code to demonstrate 
# get nth tuple element from list
# using zip()
  
# initializing list of tuples
test_list = [(1, 'Rash', 21), (2, 'Varsha', 20), (3, 'Kil', 19)]
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# using zip() to get names
res = list(zip(*test_list)[1])
      
# printing result
print ("List with only nth tuple element (i.e names) : " + str(res))

输出 :

The original list is : [(1, 'Rash', 21), (2, 'Varsha', 20), (3, 'Kil', 19)]
List with only nth tuple element (i.e names) : ['Rash', 'Varsha', 'Kil']