You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python冒泡排序:如何将元素排序至新数组并正确使用append函数

解决冒泡排序结果存入新数组b的问题

你的代码已经完成了对数组a的降序冒泡排序,但因为完全没对b做任何元素添加操作,所以print(b)才会输出空列表。这里给你两种可行的修改方案:

方案1:直接复用排序后的原数组a

既然代码已经把a排序好了,只需要在排序完成后把a的元素存入b即可。可以用append逐个添加,或者直接复制数组:

a = [1,6,8,5,3]
b = []
n = len(a)
for i in range(n-1):
    for j in range(0, n-i-1):
        if a[j] < a[j + 1]:
            a[j], a[j + 1] = a[j + 1], a[j]
# 用append逐个添加元素到b
for num in a:
    b.append(num)
# 或者直接复制数组,更简洁:b = a.copy()
print(b)  # 输出 [8,6,5,3,1]

方案2:不修改原数组a,排序临时数组后存入b

如果不想改动原数组a,可以先复制一份a到临时数组,排序临时数组后再把元素存入b:

a = [1,6,8,5,3]
b = []
temp = a.copy()  # 复制原数组,避免修改a
n = len(temp)
for i in range(n-1):
    for j in range(0, n-i-1):
        if temp[j] < temp[j + 1]:
            temp[j], temp[j + 1] = temp[j + 1], temp[j]
# 把排序后的临时数组元素添加到b
for num in temp:
    b.append(num)
print(b)  # 输出 [8,6,5,3,1]
print(a)  # 原数组保持不变:[1,6,8,5,3]

补充说明

如果需要升序排序,只需要把判断条件改成if a[j] > a[j + 1]即可,后续存入b的逻辑不变。

内容的提问来源于stack exchange,提问作者Sofie Zippay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:25:33