Python:如何创建一对数组?

时间:2015-10-29 03:14:51

标签: python

我想创建一个包含不同大小的对数组(C ++类对)的数组,不知道如何在python中做到这一点吗?

更具体地说,我需要知道python中这个C ++代码的等价物:

vector<vector<pair<int, int>>> my_vector;

3 个答案:

答案 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}}方法相同。

在p ++ pop()

中使用

vector代替()

希望这一切清楚。

答案 2 :(得分:1)

在Python中,我们将vector称为list。

要构建列表,请使用 l = []

要构建列表的空列表,请使用ll = [[]]

要构建一个元组列表的空列表,首先,您需要一个列表列表,使用lll = [[]]。然后你构造一对,在Python中我们称之为元组。假设我们有一个元组t = (3, 9)。然后我们可以将此元组附加到lll ==&gt;使用lll[0].append(t)

打印lll,我们得到[[(3, 9)]]