Skip to content

Commit 3d760ac

Browse files
author
guozhen3
committed
examples
1 parent 640024a commit 3d760ac

4 files changed

Lines changed: 82 additions & 0 deletions

File tree

README.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,35 @@ def bif_by(lst, Fn):
326326

327327
records = [25,89,31,34]
328328
bif_by(records, lambda x: x<80) # [[25, 31, 34], [89]]
329+
```
330+
18 联合统计多列表元素出现次数
331+
```python
332+
from collections import Counter
333+
a = ['apple', 'orange', 'computer', 'orange']
334+
b = ['computer', 'orange']
335+
336+
ca = Counter(a)
337+
cb = Counter(b)
338+
#Counter对象间可以做数学运算
339+
ca + cb # Counter({'orange': 3, 'computer': 2, 'apple': 1})
340+
341+
342+
进一步抽象,实现多个列表内元素的个数统计
343+
344+
345+
def sumc(*c):
346+
if (len(c) < 1):
347+
return
348+
mapc = map(Counter, c)
349+
s = Counter([])
350+
for ic in mapc: # ic 是一个Counter对象
351+
s += ic
352+
return s
353+
354+
355+
#Counter({'orange': 3, 'computer': 3, 'apple': 1, 'abc': 1, 'face': 1})
356+
sumc(a, b, ['abc'], ['face', 'computer'])
357+
329358
```
330359

331360
#### 四、字典

md/Counter的高级用法.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Counter对象间可以做数学运算
2+
3+
```python
4+
from collections import Counter
5+
a = ['apple', 'orange', 'computer', 'orange']
6+
b = ['computer', 'orange']
7+
8+
ca = Counter(a)
9+
cb = Counter(b)
10+
#Counter对象间可以做数学运算
11+
ca + cb # Counter({'orange': 3, 'computer': 2, 'apple': 1})
12+
13+
14+
进一步抽象,实现多个列表内元素的个数统计
15+
16+
17+
def sumc(*c):
18+
if (len(c) < 1):
19+
return
20+
mapc = map(Counter, c)
21+
s = Counter([])
22+
for ic in mapc: # ic 是一个Counter对象
23+
s += ic
24+
return s
25+
26+
27+
#Counter({'orange': 3, 'computer': 3, 'apple': 1, 'abc': 1, 'face': 1})
28+
sumc(a, b, ['abc'], ['face', 'computer'])
29+
30+
```

md/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
18. [列表查重及次数](列表查重及次数.md)
3939
19. [多序列运算函数](多序列运算函数.md)
4040
20. [列表加字段标签](列表加字段标签.md)
41+
21. [联合统计多列表元素出现次数](Counter的高级用法.md)
4142

4243
#### 四、字典
4344

src/counter_add.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from collections import Counter
2+
a = ['apple', 'orange', 'computer', 'orange']
3+
b = ['computer', 'orange']
4+
5+
ca = Counter(a)
6+
cb = Counter(b)
7+
ca + cb # Counter({'orange': 3, 'computer': 2, 'apple': 1})
8+
9+
10+
# 进一步抽象
11+
def sumc(*c):
12+
if (len(c) < 1):
13+
return
14+
mapc = map(Counter, c)
15+
s = Counter([])
16+
for ic in mapc:
17+
s += ic
18+
return s
19+
20+
21+
#Counter({'orange': 3, 'computer': 3, 'apple': 1, 'abc': 1, 'face': 1})
22+
sumc(a, b, ['abc'], ['face', 'computer'])

0 commit comments

Comments
 (0)