我尝试对列表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=$@
...
中的每个元素进行适当的更改,并且有两种方法:A
和use_list_comprehension(A, length)
。两者对元素执行相同的操作,但产生不同的结果。
我的问题是:python列表理解是否首先制作use_plain_loop(A, length)
的副本,然后使用该副本作为获取元素并对其执行操作的源?
A
答案 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]
中。