Learn_Python_元组06

一.什么是元组

元组(tuple)是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。 在二维表里,元组也称为行。

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

二.元组与列表的区别

1.元组用小括号表示(列表用中括号表示)
t = ('Python',18,True)
print(t)
('Python', 18, True)

小括号是可以省略的。

t = 'Python',18,True
print(t)
('Python', 18, True)

空元组的两种表示方式:

print(())
print(tuple())  # 调用tuple类
()
()
2.元组是不可变类型(列表是可变类型)

为什么要设计元组这样的不可变类型呢?因为一旦创建了不可变类型的对象,对象内部的所有数据就不能被修改了,这样就避免了由于修改数据导致的错误。此外,对于不可变类型的对象,在多任务环境下同时操作对象时不需要加锁。因此,在程序中尽量使用不可变类型的对象。

对于元组中可变类型的数据,元组中存储的是其引用(在内存中的地址),因此,存储的引用是不能被改变的,也就说,不能再引用任何其它对象。但是,引用所指向的可变类型的数据是可以被改变的。

from IPython.display import Image
Image(filename = 'F:/Jupyter/Python/yuanzu.jpg', width=300, height=150)
t = (5,[1,3],8)
# t[1] = 7  不可以修改元组的引用
t[1][0] = 7  #但可以修改元组中引用的数据
print(t)
(5, [7, 3], 8)

三.只包含一个元素的元组

t = (18)
print(t)
print(type(t))  #打印t的类型是int,说明t不是tuple元组
18
<class 'int'>

元组中至少要包含一个逗号,即使元组只有一个元素,否则,小括号会被看作是数学公式中的小括号。

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

四.多个变量同时赋值

赋值运算符的左边可以是一个所有元素都为变量的元组或列表,从而一次给多个变量同时赋值。

但赋值运算符左右两边的元素个数必须是相同的,否则会抛出ValueError.

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

可以在赋值运算符左边的某个变量前添加 * ,以匹配赋值运算符右边的0个或多个元素。

from IPython.display import Image
Image(filename = 'F:/Jupyter/Python/yuanzu1.jpg', width=300, height=150)
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赋值了a,2赋值了c, b就是个空列表
1 [] 2

交换两个变量的值:

a = 5

b = 8

temp = a

a = b

b = temp

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

学习参考:

  1. 图解Python: http://e-learning.51cto.com/course/12803
  2. Python菜鸟教程:https://www.runoob.com/python/python-tutorial.html
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZPILOTE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值