python3 列表去除重复项保留原序
l1 = [11, 2, 3, 22, 2, 4, 11, 3] #第一种用for循环 l2 = [] for i in l1: if i not in l2: l2.append(i) print(l2) #第二种用方法 l3=list(set(l1)) # 将列表用set去重,再转回列表(没有按照之前的顺序) l3.sort(key=l1.index) # 将上一步得到的列表列表排序,按照key顺讯排序 print(l3) # 结果 [11, 2, 3, 22, 4] [11, 2, 3, 22, 4] # 按照年龄排序 q1=[ {'name':'Alex','age':38}, {'name':'Egon','age':18}, {'name':'Nezha','age':19}, {'name':'Allen','age':16} ] #函数 def tmp(x): # 返回一个排序的依据 return x['age'] q1.sort(key=tmp) print(q1) #使用lambda表达式 q1.sort(key=lambda x:x['age']) print(q1) #结果 [{'name': 'Allen', 'age': 16}, {'name': 'Egon', 'age': 18}, {'name': 'Nezha', 'age': 19}, {'name': 'Alex', 'age': 38}] [{'name': 'Allen', 'age': 16}, {'name': 'Egon', 'age': 18}, {'name': 'Nezha', 'age': 19}, {'name': 'Alex', 'age': 38}]
相关知识整理:
1、set(l1)
集合,去除列表重复项2、sorted()sorted(iterable, key=None, reverse=False)iterable : 可迭代对象
key : 指定一个函数,用于从iterable 中的每个元素中提取某个属性来作为用于比较的关键字。默认值为None。
reverse : 默认为Fale,为True时列表元素将被倒序排列
返回一个新的列表
对iterable 进行排序,排序方式由key的函数决定
作者:墨颜丶—— 在南方的北方少年郎
签名:当你的才华还撑不起你的野心的时候,你就应该静下心来学习
出处:http://www.cnblogs.com/moyand/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号