在Python中包含多种数据类型的排序列表

时间:2017-08-18 21:43:15

标签: python list

如何在python 3.4中对包含多种数据类型的列表进行排序? 例如:- lixt = [ “德”, “JIL”, “儿子”,54,84] lixt.sort()

错误: TypeError:'<' 'int'和'str'

的实例之间不支持

请帮助解决正确的问题

2 个答案:

答案 0 :(得分:2)

当您可以按项目的字符串表示形式排序

时,

使用sorted(your_list, key=str)表示简单的情况

l = ["Tak","jil","son",54,84]
sorted(l, key=str)

输出:[54, 84, 'Tak', 'jil', 'son']

答案 1 :(得分:0)

sorted有三个参数:一个可迭代,一个密钥和反向,即sorted(iterable, [key=None], [reverse=False])key参数允许您定义一个函数,可以调用该函数来比较iterable中项的值。下面给出了一些例子:

# notice the function name is supplied without brackets
sorted(["Eva", "eva", "string", "Aaron"], key=str.lower)

# the same result using lambda
sorted(["Eva", "eva", "string", "Aaron"], key=lambda x: x.lower())

# comparing by the second element in a tuple: (name, age)
name_ages = [("Eva", 12), ("Tom", 14), ("Gerald", 4)]
# output is [('Gerald', 4), ('Eva', 12), ('Tom', 14)]
sorted(name_ages, key=lambda x: x[1])  

使用lambdas或定义自己的函数,排序函数非常通用。

NB:使用也可以使用key

中的list.sort()参数