Python基础-day17-数据结构collections
from collections import namedtuple
from collections import deque
from collections import OrderedDict
from collections import defaultdict
from collections import Counter
import queue


命名元祖,同样是元祖,它跟一般元祖的区别是:
命名元祖中每个元素都有其名字。
如果我们想用元祖表示一个点,则需要一个横坐标,一个纵坐标。
namedtuple('point', ['x', 'y'])
x表示横坐标
y表示纵坐标
point可以任意写,但建议写成有意义的名字。






dic2 = OrderedDict([(1, "查看数据"), (2, "编辑数据"), (3, "删除数据")]) print(dic2) for key in dic2.keys(): print(key, dic2[key])

def func(): return 'No this key!' dd = defaultdict(func) dd['key1'] = 'abc' print(dd['key1']) print(dd['key2'])
# 这里提个错误,传递None给defaultdict会报错。所以目前已知:只能传递可调用对象,且该对象要返回数据。

c = Counter('abcdeabcdabcaba')
c.most_common(3)
# 打印数量最多的前三个统计项
[('a', 5), ('b', 4), ('c', 3)]
第一个元素记录的是字符;
第二个元素记录的是数量。
>>> c = Counter('abcdeabcdabcaba') # count elements from a string | | >>> c.most_common(3) # three most common elements | [('a', 5), ('b', 4), ('c', 3)] | >>> sorted(c) # list all unique elements | ['a', 'b', 'c', 'd', 'e'] | >>> ''.join(sorted(c.elements())) # list elements with repetitions | 'aaaaabbbbcccdde' | >>> sum(c.values()) # total of all counts | 15

浙公网安备 33010602011771号