引用元组列表中的元素

时间:2011-06-23 13:32:32

标签: python list reference element tuples

提前抱歉,但我是Python的新手。我有一个tuples列表,我想知道如何引用列表中每个tuple的第一个元素。我认为这就像

for i in number_of_tuples :
  first_element = myList[i[0]]

你知道,[list_element[tuple_element]]?但是,这似乎不是正确的方法。任何帮助将不胜感激。

谢谢,

特纳

7 个答案:

答案 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的元素一个接一个地分配给tmy_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)