python 列表生成式的使用,list重复元素查找
前言
本篇记录Python中列表生成式的使用,以及列表中重复元素的查找。
列表生成式
list循环
假如有一个列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],我们想找出list中大于5的元素,最简单的方法是用list做循环:
l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
s = []
for a in l:
if a > 5:
s.append(a) # [6, 7, 8, 9]
上面这个代码虽然简单,但并不简洁。
列表生成式
在创建list时,可以在list中使用循环和条件表达式来生成列表,比如上面的目标用列表生成式可以写成:
s = [x for x in l if x > 5] # [6, 7, 8, 9]
明显列表生成式更加简洁。
列表生成式的格式:[表达式 for 循环 if 条件]
list重复元素查找
有时需要查找list中的重复元素,可以通过python内置的collections包中的Counter类计算:
import collections
t = [0, 0, 0, 1, 1, 2]
c = dict(collections.Counter(t))
s = [k for k,v in c.items() if v > 1] # [0, 1]