3.元组Tuple

作者: Stone_説 | 来源:发表于2020-12-11 01:08 被阅读0次

目录
0.元组介绍
1.元组定义和初始化
2.元组元素访问
3.命名元组namedtuple

0.元组介绍

元组是不可变对象
一个有序的元素组成的集合
使用小括号()表示

1.元组定义和初始化

1.1 tuple() -> empty tuple
>>> t = tuple()
>>> t,type(t)
((), <class 'tuple'>)
>>> t = ()
>>> t,type(t)
((), <class 'tuple'>)
>>> t = (1,2)
>>> t,type(t)
((1, 2), <class 'tuple'>)
>>> t = (1)
>>> t,type(t)
(1, <class 'int'>)
>>> t = (1,)  定义单元素元组的时候,一定要加“,”逗号
>>> t,type(t)
((1,), <class 'tuple'>)
>>> t = (1,)*3 
>>> t,type(t)
((1, 1, 1), <class 'tuple'>)
>>> t = (1,2,3)*3
>>> t,type(t)
((1, 2, 3, 1, 2, 3, 1, 2, 3), <class 'tuple'>)
1.2 tuple(iterable) -> tuple initialized from iterable's items
>>> t = tuple([1,2,3,4])
>>> t
(1, 2, 3, 4)
>>> t,type(t)
((1, 2, 3, 4), <class 'tuple'>)
>>> t = tuple("4234234")
>>> t,type(t)
(('4', '2', '3', '4', '2', '3', '4'), <class 'tuple'>)

2.元组元素访问

支持索引
正索引:从左至右,从0开始,为列表中每一个元素编号
负索引:从右至左,从-1开始
正索引不可以超界,否则引发异常IndexError
元组通过索引访问:tuple[index],index就是索引,使用中括号访问

2.1 tuple[index]
>>> t = (0,1,2,3)
>>> t[1]
1
>>> t[0],t[1],t[2]
(0, 1, 2)
>>> t[4]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
2.2 index(value,[start,[stop]])

通过值value,从指定区间查找列表内的元素是否匹配
匹配第一个就立即返回索引
匹配不到,抛出异常ValueError

>>> t = (0,1,2,3,4,5,6,7,8)
>>> t.index(1,0,2)
1
>>> t.index(3,3,4)
3
>>> t.index(1,-8,-1)
1
>>> t.index(1,0,1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: tuple.index(x): x not in tuple
2.3 count(value)

返回列表中匹配value的次数

>>> t = (1,2,2,3,3,3,4,4,4,4,54)
>>> t.count(0)
0
>>> t.count(2)
2
2.4 len(tuple)

返回元素的个数

>>> t
(1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 54)
>>> len(t)
11

NOTE:元组是只读的,所以增、改、删方法都没有

3.命名元组namedtuple

namedtuple是tuple的一个子类:
1.namedtuple中的属性不可修改
2.访问方式类似于类的访问属性,通过‘.’点进行访问
3.可类比字典进行学习,但是和字典的k-v存储,访问有本质不同

>>> from collections import namedtuple   #namedtuple模块导入
>>> Point = namedtuple('_Point',['x','y'])
>>> p1 = Point(1,2)
>>> p1.x
1
>>> p1.x,p1.y
(1, 2)
>>> type(Point),type(p1)
(<class 'type'>, <class '__main__._Point'>)
>>> Point.__bases__   #namedtuple为tuple的子类
(<class 'tuple'>,)
>>> Point.mro()
[<class '__main__._Point'>, <class 'tuple'>, <class 'object'>]

相关文章

  • 3.元组Tuple

    目录0.元组介绍1.元组定义和初始化2.元组元素访问3.命名元组namedtuple 0.元组介绍 元组是不可变对...

  • Python起步——元组

    元组和列表一样,也是一种序列,唯一的不同是元组不能修改。 1. 创建元组(tuple) 2. 元组分片 3. 元组...

  • python随手记-创建空集合

    创建空列表: list = [] 创建空元组:tuple = () 创建单个元素的元组:tuple_single ...

  • Python基础数据类型——tuple浅析

    Python中tuple的使用 一、什么是元组? 有序列表叫元组:tuple。tuple和list非常类似,但是t...

  • 7.基本数据类型 tuple/list

    元组(tuple) tuple类型就是元组,用圆括号( )表示,不同元素逗号隔开。 ☑一旦初始化赋值,tuple的...

  • Python基础数据类型——tuple浅析

    Python中tuple的使用 一、什么是元组? 有序列表叫元组:tuple。tuple和list非常类似,但是t...

  • 我的python学习笔记-第三天

    基本数据类型 接昨天的内容 Tuple(元组) 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组...

  • day08、元组,字典,集合 2019-01-03

    一、tuple 元组 1.什么是元组(tuple) python提供的容器型数据类型,不可变且有序。(元组就是不可...

  • Day-8 - 字典和集合(2018-10-09)

    一、元组 1.什么是元组 格式:tuple = (元素1, 元素2, ……, 元素n)tuple = 元素1, 元...

  • 元组tuple

    不同的列表---元组tuple 元组与列表最大的区别,元组的内容是无法改变 创建元组方法 >>> a = (1,2...

网友评论

    本文标题:3.元组Tuple

    本文链接:https://www.haomeiwen.com/subject/hrjdgktx.html