文章目录
一、基本数据类型
Python 中一共有6种基本数据类型,他们是:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
在这6个基本数据类型中,不可变数据 有3个:
- Number(数字)
- String(字符串)
- Tuple(元组)
可变数据 有3个:
- List(列表)
- Set(集合)
- Dictionary(字典)
各个数据可以使用特定的语句来进行转换,如int()、str()、float()、set()等。
本期内容我们详细介绍Tuple(元组)
这一类型。
二、Tuple(元组)
元组(tuple),无简写。
元组是不可修改的有序序列,元组使用小括号()
。
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。
元组以牺牲可修改性为代价,相比于列表,它所占用的资源更小。
以下都是元组(Tuple)
类型。
a = (1, 2, 3, 4)
b = ()
c = (1, )
d = 1, 2, 3, 4
e = '1', '2', '3', '4'
f = ([1, 2], [3, 4]) # 列表本是可变类型,成为元组的元素后,变为不可变类型
- 当元组内的
元素数量=1
时,此元素必须在后面加上一个英文逗号,不加的话会被当成变量看; - 当元组内的
元素数量>1
时,可以省略括号,但不能省略逗号。
a = (1, ) # 元组类型
b = (1) # 数字类型
# 使用 type() 函数获取数据的类型
print(type(a))
print(type(b))
程序输出:
<class 'tuple'>
<class 'int'>
<class 'tuple'>
表示元组类型,<class 'int'>
表示整数类型。
(1)访问元组
一样的,我们可以使用索引来访问元组的各元素。
使用索引访问元组元素的格式为:
tuplen[index]
如代码:
tuple = (1, 2, 3, 4)
print(tuple[0])
print(tuple[-2])
运行结果为:
1
3
(2)元组切片
使用切片元组元素的格式为:
tuplen[start:end:step]
a = [1, 2, 3, 4]
print(a[1:3])
print(a[-3:-1])
print(a[2:])
print(a[:2])
输出:
[2, 3]
[2, 3]
[3, 4]
[1, 2]
(3)通过len()
函数查看元组元素个数
万能len()
函数又来啦!
tup = (1, 2, 3)
print(len(tup))
程序输出:
3
(4)元组拼接
与字符串、列表一样,元组的拼接也使用操作符+
。
a = (1, 2)
b = (3, 4)
print(a+b)
程序输出:
(1, 2, 3, 4)
(5)元组复制
元组的复制与字符串、列表一样,也使用操作符*
。
tup = (1, 2)
print(tup*3)
程序输出:
(1, 2, 1, 2, 1, 2)
(6)修改元组的几种方式
tuple = (1, 2, 3, 4)
tuple[0] = 2 # 修改元组属于非法命令
以上运行结果:
Traceback (most recent call last):
File "<pyshell#1>", line 3, in <module>
tuple[0] = 2
TypeError: 'tuple' object does not support item assignment
>>>
这里报错属性为TypeError
(type - 属性,error - 错误),报错信息为'tuple' object does not support item assignment
。这里报错的内容我们以后的文章会讲到,大概意思是(翻译源自百度翻译):
TypeError:“tuple”对象不支持项分配
说人话,你没事修改元组干嘛!
但是,有人问,我要是一定要修改元组怎么办?来,哥教你。
方法一:赋值
第一种方法,直接进行赋值(重新覆盖)。
a = (1, 2, 3, 4)
a = (1, 2, 3, 4, 5) # 将元组修改成 (1, 2, 3 ,4, 5)
print(a)
(1, 2, 3, 4, 5)
这应该不用讲都看得懂吧?
方法二:拼接
第二种,拼接。
tuple1 = (1, 2, 3, 4)
tuple2 = (5, 6)
tuple3 = tuple1 + tuple2
print(tuple3)
(1, 2, 3, 4, 5, 6)
方法三:元组列表相互转化
第三种,转化式,通过将元组转化成列表后修改,再转化回元组。
tuple1 = (1, 2, 3, 4)
list1 = list(tuple1)
list1.append(5)
tuple1 = tuple(list1)
print(tuple1)
(1, 2, 3, 4, 5)
list()
、str()
、int()
、float()
、tuple()
、set()
,这些函数用来转化对应的类型。
(7)废除元组
直接删除元组自然用的就是Python的垃圾回收器del
了。
tuple1 = (1, 2, 3, 4)
del tuple1
print(tuple1)
运行后会报错:
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
print(tuple1)
NameError: name 'tuple1' is not defined
>>>
报错原因是因为元组tuple1
被我们删了,再输出,Python不知道什么是tuple1
,就报错了。
(8)查看元素是否在元组内
与字符串一样,使用in
和not in
语句。
关于这两种语句的用法,我不多说,可以参考我的文章Python 基本数据类型 之 字符串
,文章中 第六点 的 方法二 有详细讲解:
我们直接上示例:
tup = (1, 2, 3, 4)
print(1 in tup)
print(5 in tup)
print(1 not in tup)
print(5 not in tup)
程序输出:
True
False
False
True