Python字符串切片转整数及注册号排序函数返回值问题
问题分析与解决
没错!你猜的完全正确——你的函数之所以返回None,核心原因就是缺少显式的返回值。
为什么会返回None?
在Python里,任何函数如果没有写return语句,执行完毕后都会默认返回None。你的函数cutt(n)里,虽然把n[5:9]转换成了整数并赋值给了变量n,但没有把这个处理后的结果返回出去,所以调用时自然得到None。
修改方法
只需要在函数里添加return语句,把转换后的整数返回即可:
def cutt(n): return int(n[5:9])
结合排序需求的用法示例
假设你有一个注册号列表,比如:
registration_nums = ["18xyz1234", "18abc9876", "18def5678"]
现在可以用这个函数作为key参数来排序(按最后四位数字升序/降序):
# 按数字升序排序 sorted_nums = sorted(registration_nums, key=cutt) # 按数字降序排序 sorted_nums_desc = sorted(registration_nums, key=cutt, reverse=True)
这样就能按照你想要的规则对注册号进行排序啦~
内容的提问来源于stack exchange,提问作者Naman Sood
相关产品推荐
相关产品推荐

