对不起,但我是Python新手。我有一个tuples
的列表,我想知道我可以如何引用列表中每个tuple
的第一个元素。我认为它就像引用元组列表中的元素
for i in number_of_tuples :
first_element = myList[i[0]]
你知道,[list_element[tuple_element]]
?但是,这似乎并不是正确的做法。任何帮助将不胜感激。
感谢,
特纳
对不起,但我是Python新手。我有一个tuples
的列表,我想知道我可以如何引用列表中每个tuple
的第一个元素。我认为它就像引用元组列表中的元素
for i in number_of_tuples :
first_element = myList[i[0]]
你知道,[list_element[tuple_element]]
?但是,这似乎并不是正确的做法。任何帮助将不胜感激。
感谢,
特纳
您可以使用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']
如果我要访问的元组的所有元素,就像我有一个列表= [(1,2),(3,4),(5,6)]。我想得到1,2,然后3,4等等。而不仅仅是第一个或最后一个元素。 – Liza
@Liza'for my_tuples' ...? –
代码
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]
而不是:
first_element = myList[i[0]]
你可能想:
first_element = myList[i][0]
您还可以使用itemgetter操作:
from operator import itemgetter
data = [('c','r'), (2, 3), ('e'), (True, False),('text','sample')]
map(itemgetter(0), my_tuples)
这里所有其他的答案是正确的,但没有解释为什么你正在尝试是错误的。当你做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
这是页面上的最佳答案。 – dotancohen
我想知道这个答案是否比列表理解答案有更高的计算成本?后者当然有更高的内存成本! –
所以,你必须“的元组列表”,让我假定你对某2维矩阵,并在此情况下,一个方便的界面来完成你所需要的是一个numpy
提供的。
假设您有一个数组arr = numpy.array([[1, 2], [3, 4], [5, 6]])
,您可以使用arr[:, 0]
来获取每个“元组”中所有第一个元素的新数组。
这里有一个简单的例子:
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)
myList中[I] [0]或更多的乐趣:我为我在myList中[0] – phkahler