在Python中处理可变对象

时间:2014-08-29 20:00:36

标签: python list mutable

我想构造带有两个参数entNummaxNum的函数,并返回一些向量的列表。以下是我的尝试:

# entNum is the number of entries in each vector, and maxNum is the 
# maximum number each entry can be.
def vectList(entNum,maxNum): 

    vectors = []
    v = []
    for i in range(entNum):
        v.append(1)
    vectors.append(v)
    x = 0
    while v[entNum-1] != maxNum:
        v[x] += 1
        if v[x] == maxNum:
            x += 1
        else:
            pass
        vectors.append(v)
    return vectors

使用vectList(3,2),我希望它返回[[1,1,1],[2,1,1],[2,2,1],[2,2,2]],但我获得的是[[2,2,2],[2,2,2],[2,2,2],[2,2,2]]。在做了一些搜索之后,问题似乎是列表对象是可变的。我不知道怎么解决这个问题。

0 个答案:

没有答案