2014-03-19 92 views
16

我有一個名爲對的列表。如何訪問配對列表中的一對配對的每個元素?

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

,我還可以訪問元素爲:

for x in pairs: 
    print x 

其給出類似的輸出:

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

但我要訪問的每個元件中的每一對,如在C++中,如果我們使用pair<string, int> 我們能夠通過x.firstx.second .eg訪問第一個元素和第二個元素。

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

如何在python中執行相同的操作?

+1

非常感謝你的人。這是我在stackoverflow的第一個問題。沒有期待這種快速和正確的答覆。 :) – impossible

+0

如果問題是好的,那麼不管它是否是你的第一個! ;) – gsamaras

回答

1

A 2-tuple是一對。您可以訪問的第一和第二元素是這樣的:

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

如果你想使用的名稱,嘗試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)) 
0

當你說pair[0],那給你("a", 1)。圓括號中的東西是一個元組,與列表一樣,它是一種集合。因此,您可以通過在其名稱後面指定[0][1]來訪問該事物的第一個元素。所以你所要做的就是得到pair第一個元素的第一個元素,就是pair[0][0]。或者,如果你想要第三個元素的第二個元素,它是pair[2][1]

0

您可以通過元組索引訪問成員。

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 
相關問題