《流畅的Python》 2.1 笔记

Collections.namedtuple函数

from collections import namedtuple
City = namedtuple('City', ['name', 'country'])
#City = namedtuple('City', 'name country') 这个写法也是可行的

Beijing = City('Beijing', 'China')
print(Beijing.country) #调用Beijing的country属性

namedtuple有两个主要参数:typename & field_names

typename的主要作用,是表明这一个类的名称,同时让我们在调用时能更加方便。

field_names则是用来储存关于typename的相关内容。

namedtuple的几个自带属性

>>> from collections import namedtuple
>>> City = namedtuple('City', 'name country population coordinates')

'''_fields属性会返回City的field_names'''
>>> City._fields
('name', 'country', 'population', 'coordinates')


'''单独为坐标写一个namedtuple,可以在访问时更易读'''
>>> LatLong = namedtuple('LatLong', 'lat long')
>>> delhi_data = ('Delhi NCR', 'IN', 21.935, LatLong(28.613889, 77.208889))

>>> delhi = City._make(delhi_data)
    #相当于City(*delhi_data), 注意这里要加星号

>>> delhi
City(name='Delhi NCR', country='IN', population=21.935, coordinates=LatLong(lat=28.613889, long=77.208889))
>>> delhi.coordinates.lat
28.613889

'''_asdict会把对象以字典的形式返回'''
>>> delhi._asdict()
{'name': 'Delhi NCR', 'country': 'IN', 'population': 21.935, 'coordinates': LatLong(lat=28.613889, long=77.208889)}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值