【问题标题】:How to sort a list with strings and integers?如何用字符串和整数对列表进行排序?
【发布时间】:2015-07-10 18:20:01
【问题描述】:

我有一些代码:

def params_to_list(x, y, z):
    """(object, object, object) -> list

    Return a list containing x, y and z, in order.
    >>> params_to_list('hello', "month", 3)
    ['hello', 'month', 3]
    """

我需要创建一个函数。我尝试使用sorted 方法,但它返回错误:

builtins.TypeError:不可排序的类型:int()

【问题讨论】:

    标签: python string list sorting numbers


    【解决方案1】:

    manual 声明不同类型之间的排序是实现定义的:

    不同类型的对象,除了不同的数值类型和不同的字符串类型,从不比较相等;此类对象的顺序一致但任意

    这里最一致的方式似乎是排序好像一切都是一个字符串:

    def params_to_list(*params):
        return sorted(params, key=lambda p: str(p))
    

    【讨论】:

      【解决方案2】:

      我不确定你希望你的参数如何排序,但你可以调用内置函数sorted()

      def params_to_list(*params):
          return sorted(list(params))
      

      【讨论】:

      • 您不需要list(return sorted(params) 也一样。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 2010-10-21
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多