【问题标题】:Finding the largest variable in a list while the output is still a variable not a number在输出仍然是变量而不是数字时查找列表中的最大变量
【发布时间】:2026-01-26 03:00:02
【问题描述】:

我一直在尝试编写一个对变量列表进行排序的代码。我知道可以通过多种方式做到这一点,包括我正在尝试使用的冒泡排序。但是,当我使用冒泡排序对列表进行排序时,输出始终是数字而不是变量名。对不起,如果答案很明显,我是 Python 新手。

A = 5
B = 7
c= 8
def bubblesort(alist):
    for passnum in range(len(alist)-1,0,-1):
        for i in range(passnum):
            if alist[i]>alist[i+1]:
                temp = alist[i]
                alist[i] = alist[i+1]
                alist[i+1] = temp

alist = [B,A,c]
bubblesort(alist)
print(alist) 

【问题讨论】:

  • 调试步骤 1:从您的代码中删除 bubblesort(alist),看看会发生什么。调试的第 2 步:问问自己为什么 print(alist) 不会直接打印文本“alist”。
  • Python 不适用于引用,没有变量类。您可以使用sorted(alist) 对列表进行排序
  • 简化:你有 a=1;print(a) 并期望 Python 打印 a 而不是 1 - 但它不是这样工作的。
  • 我不太明白你的期望。对数字列表进行排序将为您提供数字列表,而不是变量列表。如果你想映射键:值对,你应该使用字典。

标签: python bubble-sort


【解决方案1】:
alist = {5: 'A', 7: 'B', 8: 'c'}
print([alist[item] for item in sorted(alist)])

【讨论】:

  • 如果列表包含两个相等的数字怎么办?
  • 它可以被简单地更改为将值存储为list of string 而不是字符串。
最近更新 更多