我想创建一个包含不同大小的对数组(C ++类对)的数组,不知道如何在python中做到这一点吗?
更具体地说,我需要知道python中这个C ++代码的等价物:
vector<vector<pair<int, int>>> my_vector;
答案 0 :(得分:5)
您可以使用元组实现对,可以通过用逗号分隔元素来创建元组,通常用括号括起来以提高可读性。
对于矢量,您可以使用允许您根据需要删除和添加元素的列表。这些是用逗号分隔的元素创建的,用方括号括起来。
实现您的结构类型的一个例子是:
pair1 = (0, 1)
pair2 = (4, 3)
inner_vector1 = [pair1, pair2]
inner_vector2 = [pair2]
inner_vector2.append(pair1)
outer_vector = [inner_vector1, inner_vector2]
结果是对象:
[[(0, 1), (4, 3)], [(4, 3), (0, 1)]]
可视化为:
outer_vector (list)
{
inner_vector1 (list)
{
pair1, (tuple)
pair2 (tuple)
},
inner_vector2 (list)
{
pair2, (tuple)
pair1 (tuple)
}
}
答案 1 :(得分:3)
my_vector = [] # python list, for list of lists: use [[]]
my_vector.append([(3,5),(-2,1)]) # my_vector = [[(3,5),(-2,1)]]
my_vector.append([(8,4)]) # my_vector = [[(3,5),(-2,1)],[(8,4)]]
my_vector[1].append((-1,1)) # my_vector = [[(3,5),(-2,1)],[(8,4),(-1,1)]]
my_vector[0].pop() # my_vector = [[(3,5)],[(8,4),(-1,1)]]
my_vector.pop() # my_vector = [[(3,5)]]
append()
类似于C ++ push_back()
的{{1}}方法。
vector
与C ++ pop()
的{{1}}方法相同。
pop()
中使用 vector
代替()
希望这一切清楚。
答案 2 :(得分:1)
在Python中,我们将vector称为list。
要构建列表,请使用
l = []
。
要构建列表的空列表,请使用ll = [[]]
要构建一个元组列表的空列表,首先,您需要一个列表列表,使用lll = [[]]
。然后你构造一对,在Python中我们称之为元组。假设我们有一个元组t = (3, 9)
。然后我们可以将此元组附加到lll
==&gt;使用lll[0].append(t)
。
打印lll
,我们得到[[(3, 9)]]
。