collections模块
collections模块是什么?
collections模块的作用是提供一些python八大数据类型以外的数据类型
常用方法
#具名元组
#可以应用在坐标中
from collections import namedtuple #导入具名元组库
point = namedtuple('坐标', ['x', 'y']) #用法namedtupe(字符串类型的文件名,可迭代对象)
point1 = namedtuple('坐标', ('x', 'y'))
point2 = namedtuple('坐标', 'x y')
p = point(1, 3) #传参的个数,要与namedtuple第二个参数的个数一一对应
p1 = point1(7, 3)
p2 = point2(3, 6)
print(p)
print(p1)
print(p2)
print(type(p))
#结果为
坐标(x=1, y=3)
坐标(x=7, y=3)
坐标(x=3, y=6)
<class '__main__.坐标'>
#扑克牌:获取扑克牌对象
from collections import namedtuple
card = namedtuple('扑克牌', ['color', 'number'])
red_A = card('♥', 'A')
black_K = card('♠', 'K')
print(red_A)
print(black_K)
#结果为
扑克牌(color='♥', number='A')
扑克牌(color='♠', number='K')
#电影信息
from collections import namedtuple
a = namedtuple('movie_information', 'city movie_type name')
every_day_up = a('上海', 'action', '胡歌')
print(every_day_up)
print(type(every_day_up))
#结果为
movie_information(city='上海', movie_type='action', name='胡歌')
<class '__main__.movie_information'>
#python中的字典是无序的
dic = dict({'x': 1, 'y': 3, 'z': 5})
print(dic)
print(type(dic))
for i in dic:
print(i)
#结果为
{'x': 1, 'y': 3, 'z': 5}
<class 'dict'>
x
y
z
#可以通过OrderdDict模块获取有序字典
from collections import OrderedDict
order_dict = OrderedDict({'x': 1, 'y': 3, 'z': 5})
print(order_dict)
print(type(order_dict))
print(order_dict.get('y'))
print(order_dict['z'])
for i in order_dict:
print(i)
#结果为
OrderedDict([('x', 1), ('y', 3), ('z', 5)])
<class 'collections.OrderedDict'>
3
5
x
y
z
#总结:在使用具名元组时的格式为namedtupe(字符串类型的文件名,可迭代对象),注意最后传入的参数要和此处的参数个数一致;在使用OrderedDict获取有序字典后,字典依然不能通过索引取值