冒泡排序算法输入无效 (Python)
Bubble sort algorithm input not working (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
如果我使用永久方法,程序正确returns:
Original: [1, 11, 22, 2]
Sorted: [1, 2, 11, 22]
但是,如果我使用用户输入,程序会出错 returns:
Original: ['1', '11', '22', '2']
Sorted: ['1', '11', '2', '22']
任何人都可以提供任何关于为什么会发生这种情况的见解,我已经 运行 多次尝试该程序并将其隔离到这个特定部分。
我还注意到 returns 用户输入的数字是文本字符串,但我看不出这会导致什么问题。 (抱歉,我对此很陌生!)
提前致谢!
编辑: 谢谢,已经 !
您需要将每个输入转换为 int
ToSort = list(map(int, inputs.split(",")))
这是一个关于 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
如果我使用永久方法,程序正确returns:
Original: [1, 11, 22, 2]
Sorted: [1, 2, 11, 22]
但是,如果我使用用户输入,程序会出错 returns:
Original: ['1', '11', '22', '2']
Sorted: ['1', '11', '2', '22']
任何人都可以提供任何关于为什么会发生这种情况的见解,我已经 运行 多次尝试该程序并将其隔离到这个特定部分。
我还注意到 returns 用户输入的数字是文本字符串,但我看不出这会导致什么问题。 (抱歉,我对此很陌生!)
提前致谢!
编辑: 谢谢,已经
您需要将每个输入转换为 int
ToSort = list(map(int, inputs.split(",")))