去除一个列表中的重复数据
简单的方法就是用set:
a = ['a','b','b','c','c','d']
b = list(set(a))
print b
['b', 'd', 'c', 'a']
但是这样原来的序列就被打乱了。这就用到了sort方法:
a = ['a','b','b','c','c','d']
b = list(set(a))
b.sort(key=a.index)
print b
['a', 'b', 'c', 'd']
或者是:
c = sorted(set(a),key=a.index)
c
['a', 'b', 'c', 'd']
a = ['a', 'b', 'b', 'c', 'c', 'd']
b = list(set(a))
b.sort(key=a.index) # 没有返回值 直接改变的是b的值
print(b)
按照字典的key进行排序
list=[{"a":5,"b":2},{"a":1,"b":12},{"a":7,"b":22}]
按照字典a的值对列表进行排序:
new_list=sorted(list,key=lambda k:k["a"])
python sort() sorted() )函数的区别
python的内建排序函数有 sort、sorted两个
sort函数只定义在list中,sorted函数对于所有的可迭代序列都可以定义.
这里的sorted针对的是可迭代的 set 竟然也是,但是最终还是把转换后的结果变成了列表
a = ['a', 'b', 'b', 'c', 'c', 'd']
print(set(a))
b = sorted(set(a))
print(b)
结果:
{'c', 'd', 'b', 'a'}
['a', 'b', 'c', 'd']