gpt4 book ai didi

Python如何将列表作为参数并编辑其值?

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

我有以下代码:

def radixSort(A):

#get max amount of digits

A = sortByDigit(A, maxDigits) #this works
print(A) #prints A as sorted

if __name__ == "__main__":
A = [int(100*random.random()) for i in range(10)]
radixSort(A)
print(A) #prints unsorted

为什么在 radixSort 中更改 A 不会在 main 方法中更改 A?我意识到我可以简单地在 radixSort 中添加一个 return 语句,并在 main 方法中添加一个赋值语句,但是代码必须通过以下测试用例:

    def testrRadixSort(self):
A = [4, 3, 2]
radixSort(A)
self.assertEqual(A, [4,3,2])

最佳答案

sortByDigit 不是就地排序。它正在创建一个新列表并返回对该列表的引用。

您可以通过这个简单的更改将 A 的内容替换为新列表的内容

A[:] = sortByDigit(A, maxDigits) #this works

或者,您可以修改 sortByDigit,使其就地排序

关于Python如何将列表作为参数并编辑其值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19625946/

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