如何调整代码实现数组按用户输入顺序排序,替代小写优先的排序逻辑
代码修改方案
现有代码问题
- 存在未定义变量
password,你实际接收用户输入的变量是userInput,遍历对象错误 - 逻辑不符合需求:当前分三次遍历输入内容,依次提取所有小写字母、大写字母、数字,必然会打乱字符原本的输入顺序
- 冗余内容:导入了未使用的
time模块,数字匹配串遗漏了字符0
修复后代码
userInput = input('Enter some random thing here: ') lowerCaseLetters = 'abcdefghijklmnopqrstuvwxyz' upperCaseLetters = lowerCaseLetters.upper() digits = '1234567890' ret = [] # 单次遍历输入,完全保留原输入顺序 for char in userInput: # 仅保留大小写字母、数字,不需要过滤可直接删除判断条件 if char in lowerCaseLetters or char in upperCaseLetters or char in digits: ret.append(char) print(ret)
补充优化
如果你的需求只是把输入字符串按原顺序转为字符列表,不需要过滤其他特殊字符,代码可以简化为:
userInput = input('Enter some random thing here: ') ret = list(userInput) print(ret)
验证效果
输入Python123时,输出结果为['P', 'y', 't', 'h', 'o', 'n', '1', '2', '3'],完全匹配预期。
内容的提问来源于stack exchange,提问作者ETAWN
相关产品推荐
相关产品推荐

