python - 对发送给函数的数组进行排序而不进行赋值
问题描述
我对数组的排序方式没有任何疑问。我在问我发送到排序函数的随机选择的数组是如何自动排序的,即使我已将输出分配给不同的数组。
bubbleList = createRandomArray()
sortedList = BubbleSort(bubbleList)
print(bubbleList)
print(sortedList)
上面编写的一段代码的示例输出如下:
[-15, -14, -12, -12, -9, -6, -5, -4, 0, 10]
[-15, -14, -12, -12, -9, -6, -5, -4, 0, 10]
但是,如果我打印未排序的列表而不将其发送到函数,则没有排序。然后输出如下:
[-14, -6, -15, 0, -5, -9, -4, -12, -12, 10]
[-15, -14, -12, -12, -9, -6, -5, -4, 0, 10]
会不会是python自动赋值的原因?非常感谢。
添加了冒泡排序:
def BubbleSort(inlist):
n = len(inlist)
for i in range(n-1, -1, -1):
for j in range(0, i):
if not(inlist[j] < inlist[j+1]):
inlist[j], inlist[j+1] = inlist[j+1], inlist[j]
return inlist
解决方案
BubbleSort
您正在使用的方法的实现似乎正在对数组进行排序。也就是说,它正在修改分配给该列表对象的内存。并非所有 python 排序方法都以这种方式工作。sorted(list)
例如不会修改传递的列表。
推荐阅读
- python - tf.random.normal() 没有按预期工作
- javascript - 捆绑时将 Babel Polyfills 从主代码中分离出来
- string - Math.floor() - 我的理解正确吗?
- r - 如何减慢 gganimate 地图 gif 的速度?
- azure - 使用 id_token 对受广告保护的应用进行身份验证
- python - 超立方体上的简单随机游走
- java - Java(eclipse)properties.config文件设置问题之间的值
- couchbase - 如何编写查询以在沙发库中创建数据集
- android - 片段之间的共享元素过渡留下了神秘的偏移
- r - 当组件可能分散在环境中时评估调用