collections模块

TOC

引用

python默认的八大数据类型

  • 整型
  • 浮点型
  • 字符串
  • 字典
  • 元组
  • 列表
  • 集合
  • 布尔值

collections模块

一、什么是collecting模块

提供一些python八大数据类型“以外的数据类型”

二、 collections的用法

2.1 具名元组

namedtuple 大多数翻译作具名元组命名元组
具名元组可以理解为元组的增强版本,它适用于任何普通元组的应用范围。
具名元组为元组中的每个元素都赋予了含义,从而增强代码可读性。

# 导入相关模块
from collections import namedtuple


# amedtuple() 工厂函数返回一个具名元组类,该函数位于 collections 模块下,具体定义形式如下:
namedtuple(typename, field_names, *, rename=False, defaults=None, module=None)

2.1.1 具名元组的应用场景

  • 坐标
  • 扑克牌

坐标:

from collections import namedtuple

# 传入可迭代对象是有序的
# 应用:坐标
# 将'坐标'变成 “对象” 的名字
point = namedtuple('坐标', ['x', 'y'])
# point = namedtuple('坐标', ('x', 'y'))  # 第二个参数既可以传可迭代对象
# point = namedtuple('坐标', 'x y')  # 第二个参数既可以传可迭代对象
p = point(2, 3)
print(p)
print(type(p))


坐标(x=2, y=3)
<class '__main__.坐标'>

扑克牌:

from collections import namedtuple
# 扑克牌:
# 获取扑克牌对象
card = namedtuple('扑克牌', ['color', 'number'])
# 由扑克牌对象产生一张 扑克牌
red_A = card('♥', 'A')
print(red_A)
black_K = card('♠', 'K')
print(black_K)


扑克牌(color='♥', number='A')
扑克牌(color='♠', number='K')

2.2 有序字典

语法:

from collections import OrderedDict

将python中的无序字典变为有序

from collections import OrderedDict
dic = dict({'x': 1, 'y': 2, 'z': 3})
order_dict = OrderedDict(dic)
print(order_dict)
print(type(order_dict))
print(order_dict.get('x'))
print(order_dict.get('y'))

for line in order_dict:
    print(line)


OrderedDict([('x', 1), ('y', 2), ('z', 3)])
<class 'collections.OrderedDict'>
1
2
x
y
z




原文地址:https://www.cnblogs.com/cnhyk/p/11891032.html