使用python list comprehension修改列表本身,结果是否意外?

时间:2019-07-04 04:05:26

标签: python list loops list-comprehension

我尝试对列表if [[ -n "$1" ]] ; then PASS="$1" shift else PASS="$ROOT_PW" fi if [[ -n "$1" ]] ; then USER="$1" shift else USER="$ROOT_USER" fi COMMAND=$@ ... 中的每个元素进行适当的更改,并且有两种方法:Ause_list_comprehension(A, length)。两者对元素执行相同的操作,但产生不同的结果。

我的问题是:python列表理解是否首先制作use_plain_loop(A, length)的副本,然后使用该副本作为获取元素并对其执行操作的源?

A

1 个答案:

答案 0 :(得分:2)

否,列表解析不是复制A,而是创建一个新列表,该列表的索引validates_uniqueness_of :foo中存储的值为i。因此,A[i]+A[A[i]]*length返回一个新列表,然后在第3行中将A设置为该新列表。另一方面,use_list_comprehension(A, length)实际上修改了该列表,因为use_plain_loop(A, length)替换了列表。值和A[i] += A[A[i]]*length存储在A[i]中。