python小问题,为什么sorted后结果没有按升序

python 问题

print("输入处方信息")
cf1=(input("处方1:"))
cf2=(input("处方2:"))
cf3=(input("处方3:"))
cf1= cf1.split(",")
cf2= cf2.split(",")
cf3= cf3.split(",")
cf1=set(cf1)
cf2=set(cf2)
cf3=set(cf3)
print(cf1)
print(cf2)
print(cf3)
print(cf1&cf2)
a=cf1&cf2&cf3
b=(cf1&cf2|cf1&cf3|cf2&cf3)-a
print("三个处方中均出现的药材:",sorted(a))
print("在两个处方中出现的药材:",sorted(b))
print("仅一个处方中出现的药材:",sorted((((cf1|cf2|cf3)-a-b))))

img

为什么结果不能按大小排序,是因为列表里面是字符串的原因吗,有人能给我具体讲一下吗

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7537425
  • 除此之外, 这篇博客: Python 函数进阶-高阶函数中的 sorted函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 语法:sorted(Iterable, key=function, reverse=False)

  • 以下回答由chatgpt基于相关博客总结生成:

    可以确定的是,sorted函数在默认情况下是按照升序排列的,如果使用sorted函数后结果没有按照升序排列,那么可能是其他原因导致的。如果列表中的元素是字符串类型,可以使用key参数自定义排序规则。例如,对于一个包含数字字符串的列表l,可以使用sorted(l, key=int)实现将其升序排序。如果元素是其他类型,需要根据具体情况自定义排序规则。可以参考上述的代码示例,根据元素类型的不同,使用不同的排序方法和自定义关键字。如果列表中的元素是嵌套字典或其他复杂数据结构,可以使用lambda表达式或自定义函数来设置key参数,具体实现方法可以参考上述的代码示例。如果以上方法均不能解决问题,可以进一步检查数据结构是否正确,或者提供更具体的代码和数据样本以便进行更深入的分析。