Python数据结构之元组类型(tuple)
元祖类型(tuple)
-
元祖定义
-
索引和切片
-
查询元组元素
-
元组的连接组合
-
删除整个元组
-
元组的运算符
-
元组内置函数
-
range()-Python内置函数简单说明
一、元组定义
Python 的元组与列表类似,不同之处在于元组的元素不能修改,不能删除,不能新增,只能读取;也被称为只读列表
元组的表达形式:使用 ( ) 表示元组;
如果元组中只有一个元素,则表现形式为:(元素,)因为元组中只包含一个元素时,如果不加逗号,会被当作运算符使用;
空元组的表达形式:tuple()
元组是一个可迭代对象,有__iter__方法;
例子:
>>> tu1 = (50) >>> print(type(tu1)) <class 'int'> >>> tu2 = (50,) >>> print(type(tu2)) <class 'tuple'> >>> tu3 = tuple() >>> print(type(tu3)) <class 'tuple'>
二、索引和切片
元组的索引和切片的使用方式和字符串以及列表的索引切片使用方式是一样的;
三、查询元组元素
可以通过索引或切片来访问元组中的值;
例子:
>>> tu1 = (1,2,3,4,"a","b","c") >>> print(tu1[4]) a >>> print(tu1[2:6]) (3, 4, 'a', 'b') >>> print(tu1[0:6:2]) (1, 3, 'a') >>> print(tu1[6:0:-2]) ('c', 'a', 3)
四、元组的连接组合
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:
>>> tu1 = (1,2,3,4,5) >>> tu2 = ("a","b","c","d","e",) >>> tu3 = tu1 + tu2 >>> print(tu3) (1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'e')
五、删除整个元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:
>>> tu1 = (1,2,3,4,5) >>> print(tu1) (1, 2, 3, 4, 5) >>> del tu1 >>> print(tu1) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'tu1' is not defined
六、元组的运算符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
七、元组的内置函数
1.count(self, value)
说明:记录所要搜索的value在元组中出现的次数;
语法:tuple.count(value)
参数:value -------------> 搜索的元素
返回值:返回被搜索元素出现在元组中的次数,没有则返回0;
实例:
>>> tu1 = ("a","b","d","a","d","a")>>> print(tu1.count("a")) 3 >>> print(tu1.count("p")) 0
2.index(self, value, start=None, stop=None)
说明:用于从元组中找出某个值第一个匹配项的索引位置。
语法:tuple.index(value, start=None, stop=None)
参数:value -----------> 搜素的元素;
start ------------> 起始位置;
end ------------> 结束位置;
返回值:若存在此元素,则返回次元素所在的索引位置,否则报错,提示找不到该元素;
实例:
>>> tu1 = ("a","b","d","a","d","a") >>> print(tu1.index("a")) 0 >>> print(tu1.index("b")) 1 >>> print(tu1.index("p")) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: tuple.index(x): x not in tuple
八、range()-Python内置函数简单说明
range()的使用方式相当于切片;
range(n) 从0到n-1
range(m,n) 从m到n-1
range(m,n,q) 从m到n-1 每q个取1个
使用for循环和range来获取列表或元组中的索引:
for n in range(len(tuple)):
print(tuple[n)
注意:
Python2中的range(1,10),可以被print()直接打印出列表[1,2,3,4,5,6,7,8,9]
Python3中的range(1,10),被print()打印后输出为,range(1,10)