python元组的增删改查,python修改元组中的元素
首先,元组不仅仅是不可变的列表。除了用作不可变列表之外,它还可以用于没有字段名称的记录。
元组和记录
元组实际上是数据的记录:元组中的每个元素保存记录中某个字段的数据,以及该字段的位置。正是这个位置信息赋予了数据意义。如果我们对任意表达式中元组中的元素进行排序,这些元素所携带的信息就会丢失,因为这些信息与它们的位置有关。元组拆包
将元组中的元素分配给变量的过程称为元素解包,例如:
城市,年份,人口,变化,面积=(东京,2003,32450,0.66,8014)
元组解包可以应用于任何可迭代对象。唯一的硬性要求是iterable对象中元素的数量必须与接受这些元素的空元组的数量相同。或者除非我们用*表示忽略多余的元素。比如:a,b,*rest=range(5)。
解包时,我们并不总是对元组中的所有数据感兴趣。_ placeholder有助于处理这种情况,例如:
_,filename=OS . path . split(/home/luciano/)。ssh/idrsa.pub )(但如果你做的是国际软件,那么_可能不是一个理想的占位符,因为它也是gettext.gettext函数的常用别名)
在Python 3之前,元组可以作为形参放在函数声明中,比如def fn(a,(b,c),d):但是Python 3已经不支持这种格式了,具体原因可以在《PEP 3113—元组参数解包的移除》(http://Python . org/dev/peps/PEP-3113/)中找到。
元组被设计得很好,但是当用作记录时,仍然缺少一个功能:我们经常需要命名记录中的字段。namedtuple函数的出现帮助我们解决了这个问题。
具名元组
Collections.namedtuple是一个工厂函数,可用于构建具有字段名和命名类3354的元组。这个命名的类对于调试程序非常有帮助。(用namedtuple构建的类的实例与元组消耗相同的内存,因为字段名存储在相应的类中。这个实例也比普通的对象实例小,因为Python不会用dict来存储这些实例的属性。),例如:
从集合导入命名元组
Card=collections . named tuple( Card ,[rank , suit])
City=namedtuple(城市,名称国家人口坐标)
东京=城市(东京, JP ,36.933,(35.689722,139.691667))
在这里,您可以通过字段的名称或位置来获取字段的信息。
除了从普通元组继承的属性之外,命名元组还有一些自己专有的属性。有:_fields类属性,类method _make(iterable)和实例method _asdict()。
1,_fields属性是一个元组,包含该类的所有字段名。
2.使用_make()通过接收迭代对象创建该类的实例,其功能与City(*delhi_data)相同。
3,_asdict()以集合的形式返回命名元组。OrderedDict,我们可以用它以友好的方式呈现元组中的信息。
作为不可变列表的元组
将元组与列表进行比较:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。