首页 > 解决方案 > 冒泡排序算法输入不起作用(Python)

问题描述

这是关于python中一些数组处理的问题。

我有以下代码从变量中读取数字数组sorted

print("Original: ",sorted)

for largeRepeat in range(0,len(sorted)):
    for Repeat in range(0,len(sorted)-1):
        Number1 = sorted[Repeat]
        Number2 = sorted[Repeat + 1]
        if Number1 > Number2:
            sorted[Repeat] = sorted[Repeat+1]
            sorted[Repeat+1] = Number1



print("Sorted: ",sorted)

现在,我遇到的问题是我可以以两种不同的方式为数组分配一些值,硬编码到程序中:

sorted = [1,11,22,2]

或通过用户输入,拆分使用提供的数字split()

inputs = input("Enter numbers as comma (,) separated values: ")
ToSort = inputs.split(",")
sorted = ToSort

如果我使用永久方法,程序会正确返回:

Original:  [1, 11, 22, 2]
Sorted:  [1, 2, 11, 22]

但是,如果我使用用户输入,程序会错误地返回:

Original:  ['1', '11', '22', '2']
Sorted:  ['1', '11', '2', '22']

任何人都可以提供任何关于为什么会发生这种情况的见解,我已经尝试多次运行该程序并将其隔离到这个特定部分。

我还注意到它将用户输入中的数字作为文本字符串返回,但我不明白这会如何导致问题。(对不起,我对此很陌生!)

提前致谢!

编辑:谢谢,已经解决了!

标签: pythoninputbubble-sort

解决方案


您需要将每个输入转换为int

ToSort = list(map(int, inputs.split(",")))

推荐阅读