Python捷径填充列表

时间:2013-01-27 20:25:11

标签: python python-2.7

Java有Arrays.fill(A,1)。对于预先存在的列表A,是否有使用1填充列表的快捷方式?我正在编写一个函数,它接受一个数组并以某种方式更改数组。由于数组是指针,我的函数不会返回数组。函数返回后,调用者将看到更改。我的函数的第一步是用1s填充数组。做

def my_work(A):
   A =[1]*len(A) 
   # more work on A
<{1}}完成后,

似乎无法更改A

这是我唯一的选择

my_work

还是有捷径?我看起来像是一种解决方法。

2 个答案:

答案 0 :(得分:4)

如果您确实要更改AA[:]语法应该有效:

>>> A = [1,2,3]
>>> def my_work(A):
...     A[:] = [1]*len(A) 
...     
>>> A
[1, 2, 3]
>>> my_work(A)
>>> A
[1, 1, 1]

here是本教程的相关部分(“赋值给切片”)。

答案 1 :(得分:0)

A没有改变,因为你没有将它归还my_work。一旦my_work完成,你在那里的A就没有被引用。

def my_work(A):
    A =[1]*len(A) 
    return A  #This line is needed

A = my_work(A)

另一种方法是这样的。

def reset_list(L, x):
     return [x for i in xrange(len(L))]

A = reset_list(A,1)