1. 列表去重技巧
1.1 手写函数去重法
a = [1, 3, 2, 2, 3, 4]
b = []
for i in a:
if i not in b:
b.append(i)
print(a)
print(b)
1.2 set()去重法
a = [1, 3, 2, 2, 3, 4]
a = list(set(a))
print(a)
但是set()后的列表是乱序的!!!
1.3 keys()去重法
a = [1, 3, 2, 2, 3, 4]
a = list({}.fromkeys(a).keys())
print(a)
使用法1和法3都可以保持去重后的顺序不变
2. 列表元素求和技巧
a = []
sum(list(map(int, a)))
3. 求列表各元素出现的次数
我们在这里引入“collections”库的“Counter”类,Counter是一个计数器,常用于统计。
当不使用Counter时,可以用下面的方法来实现:
colors = ['red', 'blue', 'red', 'green', 'blue', 'blue']
result = {}
for color in colors:
if result.get(color) == None:
result[color] = 1
else:
result[color] += 1
print(result)
# {'red': 2, 'blue': 3, 'green': 1}
当我们使用Counter时:
from collections import Counter
a = ['l', 'a', 'n', 'q', 'i', 'a', 'o']
print(a)
a = Counter(a)
print(a)
#输出如下
#['red', 'blue', 'red', 'green', 'blue', 'blue']
#Counter({'blue': 3, 'red': 2, 'green': 1})
使用Counter()后返回按顺序从大到小的新列表
查看最常见出现的k个元素:
Counter('abracadabra').most_common(3)
#[('a', 5), ('r', 2), ('b', 2)]