Python基础学习06-元组

除了列表,元组也是python语言提供的内置数据结构之一

元组和列表的主要区别:

  • 元组用小括号表示,列表用中括号表示
t = ('python', 18, True)
print(t)        # ('python', 18, True)

# 小括号是可以省略的
t = 'python', 18, True
print(t)         # ('python', 18, True)

# 空元组的两种表示方式
print(())           # ()
print(tuple())      # ()
  • 元组是不可变类型,列表是可变类型
# 一旦创建了不可变类型的对象,对象内部的所有数据就不能被修改了,这样就避免了由于修改数据导致的错误。此外,对于不可变类型的对象,在多任务环境下同时操作对象时不需要加锁。因此,在程序中尽量使用不可变类型对象
t = ('python', 18, True)
# t[1] = 'Java'       # TypeError: 'tuple' object does not support item assignment

# 对于元组中可变类型的数据,元组中存储的是其引用(在内存中的地址),因此,存储的引用是不能改变的。但是,引用所指向的可变类型的数据是可以改变的
t = (5, [1, 3], 8)
t[1][0] = 7
print(t)            # (5, [7, 3], 8)

 

只包含一个元素的元组

# 元组中至少包括一个逗号,即使只有一个元素。否则,小括号会被看作是数学公式中的小括号
t = (18)
print(t)        # 18
print(type(t))  # <class 'int'>

t = (18,)
k = 18,
print(t, k)                 # (18,) (18,)
print(type(t), type(k))     # <class 'tuple'> <class 'tuple'>

 

多个变量同时赋值

# 赋值运算符的左边可以是一个所有元素都为变量的元组或列表,从而一次给多个变量同时赋值
a, b = [5, 8]
print(a, b)     # 5 8

[a, b] = [5, 8]
print(a, b)     # 5 8

a, b = 5, 8
print(a, b)     # 5 8

# 赋值预算符左右两边的元素个数必须是相同的,否则会抛出 ValueError
# a, b = 5, 8, 3      # ValueError: too many values to unpack (expected 2)

# 可以在赋值运算符左边的某个变量前添加 * ,以匹配赋值运算符右边的 0 个或多个元素
a, *b, c = 1, 2, 3, 4
print(a, b, c)      # 1 [2, 3] 4

a, b, *c = 1, 2, 3, 4
print(a, b, c)      # 1 2 [3, 4]

*a, b, c = 1, 2, 3, 4
print(a, b, c)      # [1, 2] 3 4

a, *b, c = 1, 2
print(a, b, c)      # 1 [] 2

# 赋值运算符的左右两边都是元组,左边是变量的元组,右边是表达式的元组
# 先将右边的所有表达式都计算完毕后,再分别赋值给左边的变量
a = 5
b = 8
a, b = b, a
print(a, b)     # 8 5

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值