2020-11-04

元组

“记录”的概念

元组可以作为“没有字段名的记录”。所谓记录,即元组内每个元素代表的意义是不一样的,但整个元组构成一个完整的记录。如:

(张向松,27,男,116,171)#(name, age, gender, weight, height)
(中国,北京,15亿,东八区)#(country, capital, population, time_zone)

元组作为这种记录使用是很合适的,不要只把其当为“不可变列表”

元组拆包
鉴于元组作为记录使用,其拆包是必要的。举例来说,某一次考察时,我们可能只想考察姓名和年龄,而不关心其它方面,那有必要在每个元组里有效提取出这两个元素,这就是拆包。

拆包的硬性要求:用于接受这些元素的变量数必须跟元组内元素数量相等。

1)基本形式:分别赋给各个变量

2)使用%

3)使用占位符“_”

有些信息我们用不到,为了语法正确性,使用占位符。注意并没有一个变量叫“_”

4)使用*接受不确定数量的参数

其中不确定参量始终以list形式存储.

*rest可以放在任何位置,由解释器自己匹配

5)嵌套元组拆包

有些元组是嵌套式的,拆包表达式要与嵌套结构相对应,解释器就可以正确拆解。

也可以这样:

  1. 具名元组

元组作为记录时,每个字段往往有名字,如分别叫国家、首都、人口、时区、经纬度。但普通元组并未体现这一点。而具名元组则实现了这一点。

collections.namedtuple是一个工厂函数,用于构建带字段名的元组(通过构建一个带名字的类)

1)一个类属性_fields。可以得到该具名元组的所有元素名

2)一个类方法_make

在创建一个namedtuple实例时,存放在各个字段里的数据只能以“一串参数”的形式传入。如果是传入一个已构造好的可迭代对象,需要使用_make方法

3)一个实例方法_asdict:把一个具名元组转换为一个ordered_dict

  1. 元组作为不可变列表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值