python - 冒泡排序算法输入不起作用(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']
任何人都可以提供任何关于为什么会发生这种情况的见解,我已经尝试多次运行该程序并将其隔离到这个特定部分。
我还注意到它将用户输入中的数字作为文本字符串返回,但我不明白这会如何导致问题。(对不起,我对此很陌生!)
提前致谢!
编辑:谢谢,已经解决了!
解决方案
您需要将每个输入转换为int
ToSort = list(map(int, inputs.split(",")))
推荐阅读
- node.js - 在通过 {order:"ASC/DESC",applyOn:"columnName"} 的 nodejs 中使用 Auth 创建一个微服务
- r - 您如何设置调色板以使其以最暗的颜色开始,其中旧数据比当前数据亮
- php - 如何检查特定数据是否存在于数据数组中
- swift - SwiftUI + Combine,一起使用 Models 和 ViewModels
- django - 无法访问 url 中的 Django 查询字符串参数
- python - 为什么我会收到 MemoryError?
- c++ - 为什么数字在 C++ 中超出了长期范围?
- android - Android R:API 30:系统栏可见性更改回调
- java - 如何使用 ClientBuilder 为 Rest Post Api MultiPart 编写集成测试
- java - 无法通过代理从 Firebase Java 应用程序发送通知到移动应用程序