Python中元祖数据类型常用操作

Python中元祖数据类型常用操作

元祖类型

  • 一个有序的元素组成的集合;
  • 使用小括号 () 表示;
  • 元组是不可变对象;
  • 支持索引(下标);
  • 正索引和负索引;
  • 正负索引不可以超界,否则引发异常IndexError;

定义:

  • t = tuple() # 很少使用;
  • t = () # 很少使用;
  • t = tuple(range(1,7,2)) # iteratable
  • t = (2,4,5,6,1,2)

元组查询:

  • index(value,[start,[stop]])
    通过值value,从指定区间查找列表内的元素是否匹配;
    匹配第一个就立即返回索引;
    匹配不到就抛出ValueError异常。
  • count(value)
    返回列表中匹配value的次数;
  • 时间复杂度:
    index和count方法都是O(n);
    随着列表数据规模的增大,而效率下降;
  • len(tuple)
    返回元素的个数;
    命名元组namedtuple:一个命名的元组
  • namedtuple(typename,field_names,verbose=False,rename=False)
    命名元组,返回一个元组的子类,并定义了字段;定义一个新类。
    field_names可以是空格或逗号分隔的字段的字符串,可以使字段的列表;
In [89]: from collections import namedtuple          

In [90]: Point = namedtuple('_Point',['x','y'])      

In [91]: p = Point(11,22)                            

In [92]: print(p.x)                                  
11

In [93]:                                             

In [93]: Student = namedtuple('Student','name age')  

In [94]: tom = Student('tom',20)                     

In [95]: jerry = Student('jerry',18)                 

In [96]: print(tom.age) 
20

In [97]: type(tom)                                                     
Out[97]: __main__.Student

In [98]: type(Student)                                                 
Out[98]: type

注意:当元祖只有一个元素的时候,注意一定要“,”;
注意:元组是只读的,所以增、删、改方法都没有;
In [65]: t1 = (1)                                                      

In [66]: t1                                                            
Out[66]: 1

In [67]: type(t1)                                                      
Out[67]: int

In [68]: t1 = (1,)   

In [69]: type(t1)                                                      
Out[69]: tuple

In [70]: t1                                                            
Out[70]: (1,)


In [83]: t1 = (1,[2,3],4)   

In [84]: t1     
Out[84]: (1, [2, 3], 4)

In [85]: t1[1]          
Out[85]: [2, 3]

In [86]: t1[1] = 23       
---------------------------------------------------------------------------
TypeError      Traceback (most recent call last)
<ipython-input-86-fba73b90eb2a> in <module>
----> 1 t1[1] = 23

TypeError: 'tuple' object does not support item assignment

In [87]: t1[1][0] = 0      

In [88]: t1   
Out[88]: (1, [0, 3], 4)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值