- 统计词频,计算词频Top(n)
from collections import Counter
words=['张三','张三','李四','张三','王五','王二麻子','Tom','Tom','林书']
word_count=Counter(words)
top_10=word_count.most_common(10)
print(top_10)
- 对一个序列去重,去重后原顺序不变 如果用set来去冲,去重后的顺序就变了,所以不能用set
def dulpi(items,key=None):
seen=set()
for item in items:
val=item if key is None else key(item)
if val not in seen:
yield item
seen.add(val)
if __name__=='__main__':
a=[1,2,9,2,2,3,4,5,5,6,7,3,0]
b=[{'a':1,'b':1},{'a':2,'b':3},{'a':4,'b':1},{'a':1,'b':1}]
print(list(dulpi(a)))
m=dulpi(b,key=lambda x:(x['a'],x['b']))
print(list(m))
注意,如果传入的序列是字典,那么key就不能为None,此时的key是个函数,这个函数的入参是一个字典,返回一个通过key提取值后组成的元祖,类似于
def default_key(x):
return (x['a'],x['b'])
真正调用是在val=item if key is None else key(item)这一句的else后
- 两个字典之间的操作
x={'a':1,'b':2,'c':3}
y={'b':3,'c':4,'d':4}
# key相同的
a=x.keys() & y.keys()
print(a)
# key-value相同的
b=x.items() & y.items()
print(b)
# key不同的
print(x.keys()-y.keys())
# key-value不同的
print(x.items()-y.items())
- 求字典的最大、最小值
items={
'a':67,
'b':78,
'c':21,
'd':56,
'e':45,
'f':90
}
# 最大值
print(max(zip(items.values(),items.keys())))
# 最小值
print(min(zip(items.values(),items.keys())))
# 排序
print(sorted(zip(items.values(),items.keys()),reverse=True))
- 获取序列中元素的一种方法
a=[1,2,3,4,5,6,7,8,9]
head,*middle,tail=a