我有一个名为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.first
和x.second
访问第一个元素和第二个元素。例如
x = make_pair("a",1)
x.first= 'a'
x.second= 1
我怎样才能在python中做同样的事情?
答案 0 :(得分:25)
使用元组解包:
>>> pairs = [("a", 1), ("b", 2), ("c", 3)]
>>> for a, b in pairs:
... print a, b
...
a 1
b 2
c 3
答案 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