提前抱歉,但我是Python的新手。我有一个tuples
列表,我想知道如何引用列表中每个tuple
的第一个元素。我认为这就像
for i in number_of_tuples :
first_element = myList[i[0]]
你知道,[list_element[tuple_element]]
?但是,这似乎不是正确的方法。任何帮助将不胜感激。
谢谢,
特纳
答案 0 :(得分:37)
这里的所有其他答案都是正确的,但不解释为什么你所尝试的是错误的。当您执行myList[i[0]]
时,您告诉Python i
是一个元组,并且您希望元组i
的值或第一个元素作为myList的索引。
在大多数编程语言中,当您需要访问嵌套数据类型(例如数组,列表或元组)时,可以附加括号以到达最里面的项目。第一个括号为您提供列表中元组的位置。第二个括号为您提供元组中项目的位置。
这是我想出的一个快速的基本例子:
info = [ ( 1, 2), (3, 4), (5, 6) ]
info[0][0] == 1
info[0][1] == 2
info[1][0] == 3
info[1][1] == 4
info[2][0] == 5
info[2][1] == 6
答案 1 :(得分:30)
您可以使用list comprehension获取每个元组中第一个元素的列表:
>>> my_tuples = [(1, 2, 3), ('a', 'b', 'c', 'd', 'e'), (True, False), 'qwerty']
>>> first_elts = [x[0] for x in my_tuples]
>>> first_elts
[1, 'a', True, 'q']
答案 2 :(得分:4)
代码
my_list = [(1, 2), (3, 4), (5, 6)]
for t in my_list:
print t
打印
(1, 2)
(3, 4)
(5, 6)
循环遍历my_list
,并将my_list
的元素一个接一个地分配给t
。 my_list
的元素恰好是元组,因此t
将永远是元组。要访问元组t
的第一个元素,请使用t[0]
:
for t in my_list:
print t[0]
要访问列表中给定索引i
的元组的第一个元素,可以使用
print my_list[i][0]
答案 3 :(得分:3)
而不是:
first_element = myList[i[0]]
你可能想要:
first_element = myList[i][0]
答案 4 :(得分:3)
您还可以使用itemgetter运算符:
from operator import itemgetter
my_tuples = [('c','r'), (2, 3), ('e'), (True, False),('text','sample')]
map(itemgetter(0), my_tuples)
答案 5 :(得分:1)
所以你有“一个元组列表”,让我假设你正在操纵一些二维矩阵,在这种情况下,一个方便的界面来完成你需要的是numpy
提供的。
假设您有一个数组arr = numpy.array([[1, 2], [3, 4], [5, 6]])
,您可以使用arr[:, 0]
获取每个“元组”中所有第一个元素的新数组。
答案 6 :(得分:1)
这是一个简单的例子:
termList = []
termList.append(('term1', [1,2,3,4]))
termList.append(('term2', [5,6,7,8]))
termList.append(('term3', [9,10,11,12]))
result = [x[1] for x in termList if x[0] == 'term3']
print(result)