gpt4 book ai didi

python - 使用 arrayName 和 arrayName[ :] in Python? 有什么区别

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:53 25 4
gpt4 key购买 nike

<分区>

我刚刚遇到了 Python 的问题,最终我自己解决了。虽然我仍然想知道使用

有什么区别
arrayName

arrayName[:]

即使它们具有相同的值。这是我遇到问题的代码:

def quickSort(ar, start, end):
count = 0
if end - start >= 2:
p = ar[end-1]
pos = start
for i in range(start, end-1):
if ar[i] < p:
if i != pos:
ar[i], ar[pos] = ar[pos], ar[i]
pos += 1
count += 1
ar[pos], ar[end-1] = ar[end-1], ar[pos]
count += 1
count += quickSort(ar, start, pos)
count += quickSort(ar, pos+1, end)
return count

def insertion_sort(ar):
shift = 0
for i in range(1, len(ar)):
j = i-1
key = ar[i]
while (j > -1) and (ar[j] > key):
ar[j+1] = ar[j]
shift += 1
j -= 1
ar[j+1] = key
return shift

n = int(input())
ar = list(map(int, input().split()))
print(insertion_sort(ar) - quickSort(ar, 0, n))

上面会打印-18 但是如果我把最后一行改成

print(insertion_sort(ar[:]) - quickSort(ar[:], 0, n))

它将打印出正确的1(insertion_sort() 的返回值为9,quickSort() 的返回值为8)。为什么当我没有使用列表切片时返回错误值?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com