Как я могу получить доступ к каждому элементу пары в списке пар?

У меня есть список, называемый пар.

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

И я могу получить доступ к элементам как:

for x in pairs:
    print x

который дает вывод, например:

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

Но я хочу получить доступ к каждому элементу в каждой паре, например, в С++, если мы используем pair<string, int> мы можем получить первый элемент и второй элемент с помощью x.first и x.second.eg.

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

Как я могу сделать то же самое в python?

Ответы

Ответ 2

Если вы хотите использовать имена, попробуйте 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))

Ответ 3

A 2-tuple - пара. Вы можете получить доступ к первому и второму элементам следующим образом:

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

Ответ 4

Когда вы произнесете pair[0], это даст вам ("a", 1). Вещь в круглых скобках - это кортеж, который, как и список, является типом коллекции. Таким образом, вы можете получить доступ к первому элементу этой вещи, указав [0] или [1] после своего имени. Итак, все, что вам нужно сделать, чтобы получить первый элемент первого элемента pair, говорит pair[0][0]. Или, если вы хотите второй элемент третьего элемента, он pair[2][1].

Ответ 5

Вы можете получить доступ к элементам по их индексу в кортеже.

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