如何访问配对列表中对的每个元素?

时间:2014-03-19 05:02:31

标签: python list tuples

我有一个名为pair的列表。

pairs = [("a", 1), ("b", 2), ("c", 3)]

我可以访问元素:

for x in pairs:
    print x

,输出如下:

('a', 1) ('b', 2) ('c', 3)

但是如果我们使用pair<string, int>,我想访问每对中的每个元素,比如在c ++中 我们可以通过x.firstx.second访问第一个元素和第二个元素。例如

x = make_pair("a",1)
x.first= 'a'
x.second= 1

我怎样才能在python中做同样的事情?

6 个答案:

答案 0 :(得分:25)

使用元组解包:

>>> pairs = [("a", 1), ("b", 2), ("c", 3)]
>>> for a, b in pairs:
...    print a, b
... 
a 1
b 2
c 3

另请参阅:Tuple unpacking in for loops

答案 1 :(得分:9)

如果您想使用名称,请尝试使用namedtuple:

from collections import namedtuple

Pair = namedtuple("Pair", ["first", "second"])

pairs = [Pair("a", 1), Pair("b", 2), Pair("c", 3)]

for pair in pairs:
    print("First = {}, second = {}".format(pair.first, pair.second))

答案 2 :(得分:7)

2-tuple是一对。您可以像这样访问第一个和第二个元素:

x = tuple('a', 1) # make a pair
x[0] # access 'a'
x[1] # access 1

答案 3 :(得分:1)

我不认为您会喜欢它,但我为python做了一个配对端口:) 使用它与c ++有什么相似之处

pair = Pair
pair.make_pair(value1, value2)

pair = Pair(value1, value2)

这是源代码 pair_stl_for_python

答案 4 :(得分:0)

当您说pair[0]时,会给您("a", 1)。括号中的东西是一个元组,它像列表一样是一种集合。因此,您可以通过在其名称后面指定[0][1]来访问该内容的第一个元素。因此,要获得pair的第一个元素的第一个元素,您需要做的就是pair[0][0]。或者如果你想要第三个元素的第二个元素,那就是pair[2][1]

答案 5 :(得分:-1)

您可以通过元组中的索引访问成员。

lst = [(1,'on'),(2,'onn'),(3,'onnn'),(4,'onnnn'),(5,'onnnnn')]

def unFld(x):

    for i in x:
        print(i[0],' ',i[1])

print(unFld(lst))

输出:

1    on

2    onn

3    onnn

4    onnnn

5    onnnnn