如何使用字符串和整数对列表进行排序?

时间:2015-07-10 18:20:01

标签: python string list sorting numbers

我有一些代码:

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:unorderable类型:int()< STR()

2 个答案:

答案 0 :(得分:1)

manual表示在不同类型之间进行排序是实现定义的:

  

不同类型的对象,除了不同的数字类型和不同的字符串类型,从不比较相等;这些对象是一致的,但任意

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

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

答案 1 :(得分:0)

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

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