python中列表相關操作

整理了下平時工作中常用的操作列表的方法
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'}]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章