整理了下平時工作中常用的操作列表的方法
1、列表去重
alist=[1,2,3,1,2,1,1,1,1]
blist=list(set(alist))
print(blist)
# 得到[1, 2, 3]
2.求列表中列表的共有的元素
第一種
p_list= [[1,2,3],[2,1,4],[5,7,1,2,1,1,1,3,3]]
n = len(p_list)
blist = []
ins_list2 = []
for i in p_list:
i = list(set(i))
for j in i:
blist.append(j)
for k in blist:
m = blist.count(k)
if m == n:
ins_list2.append(str(k))
ins_list2 = list(set(ins_list2))
print(ins_list2)
#['2', '1']
第二種
from collections import Counter #引入Counter
a=[[1,2,3],[2,1,4],[5,7,1,2,1,1,1,3,3]]
c=[]
for i in a:
i=list(set(i))
for j in i:
c.append(j)
b = dict(Counter(c))
n=len(a)
blist=[key for key,value in b.items()if value == n]
print (blist) #只展示重複元素
# print ({key:value for key,value in b.items()if value > 1}) #展現重複元素和重複次數
# [1, 2]
3.兩個列表對應元素相加
blist=[]
a = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
for i in list(a):
blist.append(i)
print(blist)
# [3, 7, 11, 15, 19]
4.字典內的列表排序後返回
result={}
result['data'] =[]
for i in range(5):
time.sleep(1)
create_time = time.strftime('%Y/%m/%d %H:%M:%S', time.localtime(time.time()))
result['data'].append({
'create_time':create_time
})
result['data'] = sorted(result['data'], key=lambda i: i['create_time'], reverse=True) # 倒序
print(result['data'])
# [{'create_time': '2020/06/01 14:05:58'}, {'create_time': '2020/06/01 14:05:57'}, {'create_time': '2020/06/01 14:05:56'}, {'create_time': '2020/06/01 14:05:55'}, {'create_time': '2020/06/01 14:05:54'}]