0
点赞
收藏
分享

微信扫一扫

关于Python的学习记录(七)

1 元组

定义和使用元组

元组(tuple)跟列表非常的类似,元组也是多个元素按照一定的顺序构成的序列。但跟列表最大的区别就是,它是一种不可变的数据类型。这就意味着元组类型的变量一旦定义,其中的元素不能再添加或删除,而且元素的值也不能进行修改。定义元组通常使用()字面量语法。

# 定义一个三元组
t1 = (1, 2, 3)
# 定义一个四元组
t2 = ('Stan', 28, True, '上海')

除此以外,还可以通过 Python 内置的 tuple 函数将其他序列变成元组。准确的说,tuple 并不是一个普通的函数,它是创建元组对象的构造器函数,它可以接受一个可迭代对象作为可选参数,例如列表、字符串、集合等。

t0 = tuple()
t1 = tuple([1, 2, 3])
t2 = tuple({4, 5, 6})
print(t0)   #()
print(t1)	#(1, 2, 3)	
print(t2)	#(4, 5, 6)

元组的名称

一个元组中如果有两个元素,我们就称之为二元组;一个元组中如果五个元素,我们就称之为五元组。需要提醒大家注意的是,()表示空元组,但是如果元组中只有一个元素,需要加上一个逗号,否则()就不是代表元组的字面量语法,而是改变运算优先级的圆括号,所以('hello', )(100, )才是一元组,而('hello')(100)只是字符串和整数。我们可以通过下面的代码来加以验证。

# 空元组
a = ()
print(type(a))    # <class 'tuple'>
# 不是元组
b = ('hello')
print(type(b))    # <class 'str'>
c = (100)
print(type(c))    # <class 'int'>
# 一元组
d = ('hello', )
print(type(d))    # <class 'tuple'>
e = (100, )
print(type(e))    # <class 'tuple'>

元组的拼接

t1 = (1, 2, 3)
t2 = (4, 5, 6)
t3 = t1 + t2
print(t3) # (1, 2, 3, 4, 5, 6)

获取元组的长度

# 定义一个三元组
t1 = (1, 2, 3)
# 查看元组中元素的数量
print(len(t1))      # 3

元组的索引

# 定义一个三元组
t1 = (1, 2, 3)
t2 = (4, 5, 6)
# 通过索引运算获取元组中的元素
print(t1[0], t1[-3])

判断元素是否在元组内

t1 = (1, 2, 3)
t2 = (4, 5, 6)
print(1 in t1)    # True
print(8 in t2)     # False

元组的切片

# 定义一个三元组
t1 = (1, 2, 3)
# 通过索引运算获取元组中的元素
print(t1[0:2]) # (1, 2)

2 元组的方法

作为一个不可变的数据容器,元组不支持修改元素的操作,因此没有像列表那样的 append()insert()extend()remove() 和 pop() 等方法。

查找元素在元组中的索引

元组的 index 方法跟列表的一模一样

items =  ('Python', 'Java', 'Java', 'Go', 'Kotlin', 'Python')

# 查找元素的索引位置
print(items.index('Python'))       # 0
print(items.index('Python', 2))    # 5
print(items.index('Java', 3))      # 报错 数组越界

查找元素在元组中出现的次数

列表类型的 count 方法用来统计一个元素在列表中出现的次数。

items = ('Python', 'Java', 'Java', 'Go', 'Kotlin', 'Python')

# 查找元素出现的次数
print(items.count('Python'))    # 2
print(items.count('Go'))        # 1
print(items.count('Swfit'))     # 0

如何修改元组中的元素

可以先将元组转换为列表,修改后再转换回元组(本质上是创建了一个新的元组)。代码如下:

items_tuple = ('Python', 'Java', 'Java', 'Go', 'Kotlin', 'Python')
items_list = list(items_tuple)  # 转换为列表
items_list[0] = 'JS'  # 修改列表中的元素
items_tuple = tuple(items_list)  # 转换回元组
print(items_tuple) # ('JS', 'Java', 'Java', 'Go', 'Kotlin', 'Python')

举报

相关推荐

0 条评论