collections模块

一. 各种数据类型

1.1 具名元组

1.先产生一个元组对象模板
    point = namedtuple('坐标',['x','y'])
2.创建诸多元组数据
    p1 = point(1,2)
    p2 = point(10,8)
    print(p1,p2)                     # 坐标(x=1, y=2) 坐标(x=10, y=8)
    print(p1.x)                      # 1
    print(p1.y)                      # 2

    person = namedtuple('人物','name age gender')
    p1 = person('jason',18,'male')
    p2 = person('kevin',28,'female')
    print(p1,p2)                     # 人物(name='jason', age=18, gender='male') 人物(name='kevin', age=28, gender='female')
    print(p1.name,p1.age)            # jason 18


"""具名元组的使用场景也非常的广泛 比如数学领域、娱乐领域等"""

card = namedtuple('扑克牌', ['花色', '点数'])
c1 = card('黑桃♠', 'A')
c2 = card('黑梅♣', 'K')
c3 = card('红心❤', 'A')

print(c1, c2, c3)                    # 扑克牌(花色='黑桃♠', 点数='A') 扑克牌(花色='黑梅♣', 点数='K') 扑克牌(花色='红心❤', 点数='A')
print(c1.点数)                       # A

1.2 双端队列

队列: 先进先出, 默认是只有一端只能进另外一端只能出

双端队列: 两端都可以进出

import queue
q = queue.Queue(3)             # 最大只能放三个元素

# 存放元素
q.put(123)
q.put(321)
q.put(222)
q.put(444)                     # 如果队列满了 继续添加则原地等待

# 获取元素
print(q.get())                 # 123
print(q.get())                 # 321
print(q.get())                 # 222
print(q.get())                 # 如果队列空了 继续获取则原地等待
from collections import deque
q = deque([1,2,3])
print(q)
q.append(444)                  # 右边添加元素
print(q)
q.appendleft(666)              # 左边添加元素
print(q)
q.pop()                        # 右边弹出元素
q.popleft()                    # 左边弹出元素

1.3 字典相关

正常的字典内部是无序的

# 无序字典
d1 = dict([('name','jason'),('pwd',123),('hobby','study')])
print(d1)                                                        # {'pwd': 123, 'name': 'jason', 'hobby': 'study'}
print(d1.keys())


# 有序字典
from collections import OrderedDict                              # 导入

d2 = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
print(d2)
d2['x'] = 111
d2['y'] = 222
d2['z'] = 333
print(d2)
print(d2.keys())
posted @ 2023-05-06 08:10  codegjj  阅读(3)  评论(0编辑  收藏  举报