如何在python 3.4中对包含多种数据类型的列表进行排序? 例如:- lixt = [ “德”, “JIL”, “儿子”,54,84] lixt.sort()
错误: TypeError:'<' 'int'和'str'
的实例之间不支持请帮助解决正确的问题
答案 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()
参数