python对元组的操作

162 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

 

列表非常适用于储存在程序运行期间可变化的数据集。列表是可以修改的。但是有些时候需要一些不可以修改的元素,这时候元组可以满足这种需求。

因此元组被称为:不可变的列表。

值得注意的是:元组使用小括号(),列表使用方括号[ ]。

 

  • 看一下元组的类型

x = (200, 50)
print(type(x))
<class 'tuple'>

  •   创建元组可以用小括号 (),也可以什么都不用,用 ()可增加可读性。

  •   元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。


x = (200, 50)
print(x[0])  
# 200

print(x[1])
# 50

x = (66)
print(type(x))  
# <class 'int'>

x = 1, 2, 3
print(type(x))  
# <class 'tuple'>

x = ()
print(type(x))  
# <class 'tuple'>

x = (1,)
print(type(x))  
# <class 'tuple'>

 

  • 创建二维元组

 


x = (1, 2, 3), (11, 12)
print(x)
# ((1, 2, 3), (11, 12))

print(x[0])
# (1, 2, 3)

print(x[0][0], x[0][1], x[0][2])
# 1 2 3

print(x[1][1])
# 12

 

  • 我们尝试修改元组

 


x = (200, 50)
x[0] = 250
# Traceback (most recent call last):
  File "D:\python\py3.7\练习.py", line 2, in <module>
    x[0] = 250
TypeError: 'tuple' object does not support item assignment

可以看出像列表一样修改元组就会报错!

 

  • 元组有不可更改的性质,因此不能直接给元组的元素赋值,但是只要元组中的元素可更改,那么我们可以直接更改其元素,注意这跟赋值其元素不同。
x = (1, 2, 3, [4, 5, 6])
print(x)  
# (1, 2, 3, [4, 5, 6])

x[3][0] = 7
print(x)  
# (1, 2, 3, [7, 5, 6])
  • 元组相关的操作符
  1. 等号操作符:==
  2. 连接操作符 +
  3. 重复操作符 *
  4. 成员关系操作符 innot in
x_1 = (123, 456)
x_2 = (456, 123)
x_3 = (123, 456)

print(x_1 == x_2)  
# False

print(x_1 == x_3) 
# True

x_4 = x_1 + x_2
print(x_4)  # (123, 456, 456, 123)

x_5 = x_3 * 3
print(x_5)  
# (123, 456, 123, 456, 123, 456)

print(123 in x_1)  
# True

print(456 not in x_1)  
# False
  • 内置方法 countindex
  1. .count()是查看元组中的某个元素个数
  2. .index()索引某个元素位置
x = ('a', 'b', 'c')
print(x.count('b'))  
# 1

print(x.index('b'))  
# 1

补充:元组元素索引是从0开始的,所以元素'b'索引结果是 1。