Flower in my dev/Python
<PYTHON>[collections]
꽃선생
2015. 7. 10. 11:21
[collections]
- 내부 함수는 아래만 활용해 본다.
Counter()
deque()
defaultdict()
OrderedDict()
namedtuple()
1. Counter()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 |
import re
import collections
cnt = collections.Counter()
words = ['flower','wing','star','flower','star','flower']
for w in words:
cnt[w] += 1
print cnt
print list(cnt.elements())
chk = re.findall(r'\w+', open('test.txt').read().lower())
print collections.Counter(chk).most_common(10)
print collections.Counter(chk).most_common(5)
nCnt01 = collections.Counter(a=5, b=3, c=1, d=-1)
nCnt02 = collections.Counter(a=2, b=4, c=3, d=1)
nCnt03 = collections.Counter(a=5, b=3, c=1, d=-1)
print nCnt01.subtract(nCnt02)
print nCnt03 + nCnt02
print nCnt03 - nCnt02
print nCnt03 & nCnt02
print nCnt03 | nCnt02 |
cs |
2. deque()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 |
import collections
d = collections.deque('flower')
for elem in d:
print elem.upper()
d.append('a')
d.appendleft('z')
print d
print d.pop()
print d.popleft()
print list(d)
print d[0]
print d[-1]
print list(reversed(d))
print 'w' in d
d .extend(' teacher')
print d
d.rotate(1)
print d
d.rotate(-1)
print d
print collections.deque(reversed(d))
d.clear()
print d
d.extendleft('wing')
print d |
cs |
3. defaultdict()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 |
import collections
s = [('flower',3),('wing',1),('star',2),('sky',5)]
d = collections.defaultdict(list)
for k, v in s:
d[k].append(v)
print d.items()
s = 'flowerflowerfflowwwwerrr'
d = collections.defaultdict(int)
for k in s:
d[k] += 1
print d.items()
s = [('flower', 1),('wing',2),('flower',3),('wing',5),('wing',5)]
d = collections.defaultdict(set)
for k, v in s:
d[k].add(v)
print d.items() |
cs |
4. OrderedDict()
1
2
3
4
5
6
7 |
from collections import OrderedDict
d = {'flower': 2, 'wing': 1, 'star': 4, 'sky': 3}
print OrderedDict(sorted(d.items(), key=lambda t: t[0]))
print OrderedDict(sorted(d.items(), key=lambda t: t[1]))
print OrderedDict(sorted(d.items(), key=lambda t: len(t[0]))) |
cs |
5. namedtuple()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | from collections import namedtuple info = namedtuple('info', ['name', 'sex', 'area']) name = 'wing flower sky snow'.split() sex = 'mail femail'.split() area = 'Korea USA'.split() INFO = [info(n, s, a) for n in name for s in sex for a in area] print(info) for named in INFO: print(named) print(type(INFO)) print(type(INFO[0])) | cs |