4.3. 元组
4.3.1. 概念:
在大型的商业网站或游戏设计中,列表是一种非常重要的数据类型,因为其记录了各种等级客
户、游戏角色,列表数据可以随时变动更新,
python还提供另一组数据类型成为元组
(tuple),这种数据类型结构与列表完全相同,但 最大差异是元素的值和个数不可更改,又
称不可变列表
元组(tuple
)使用圆括号()将一组不可变的
数据序列组合起来形成序列
4.3.2. 元组中不允许的操作:
修改、新增元素
删除元素(但可以删除整个元组)
所有会对元组内部元素发生修改动作的方法。例
如,元组没有remove
,
append
,
pop
等方法
4.3.3. 元组操作
创建格式:tuplename=(element1 ,
element2 , ……,
elementn)
,
元组中元素个
数无限制,类型可以都不相同,例:
num1 = (2, 3, 4, 5, 6)
num2 = (1,) # 创建一个元素的元组,重要
num3 = (1) # 不是元祖,只是数值为1的对象
num4 = () # 空元组
num5 = tuple(range(0, 20, 2)) # 使用
# tuple()函数创建数值元祖,当前为偶数元组
string1 = ('china', 'hello', 'world')
string2 = (82, 'python', [1, 2, 3, 4])
string3 = 'python', '你好', '人生苦短'
# (注意:圆括号可以省略)
删除整个元组:
del tuplename
元组是不可变序列,不支持单个元素修改,但可以重新整体赋值修改
tup1 = (12, 34.56)
tup2 = ('abc','xyz')
tup1[0] = 100 # 报错
tup1 = (23, 45, 78) # 整体重新赋值
tup3 = tup1 + tup2
元组只保证它的一级子元素不可变,对于嵌套的
元素内部,不保证不可变!
tup = ('a','b', ['A','B'])
tup[2][0] ='X'
tup[2][1] ='Y'
print(tup) # 显示:('a','b', ['X','Y'])
元组连接时必须维持元组,不能字符串或列表等
tup1 = (1, 2, 3)
list1 = [4, 5, 6]
tup2 = tup1 + list1 # 报错
tup3 = tup1 +'china' # 报错
元组连接只有一个元素的元组时,必须加逗号
tup1 = (1, 2, 3)
tup2 = tup1 + (4) # 报错 改为
tup2=tup1+(4,)
元组的读取
:
定义元组时使用(),若要读取元组
内容还是和列表一样使用
[ ]
配合索引完成读取
num1 = (1, 2, 3, 4, 5)
str1 = ('apple','orange')
print(num1[0], str1[1])
元组切片
:
与列表切片操作方式相同
import random
tp1 = tuple(random.sample(range(30),10))
print(tp1)
print(tp1[1:3])
print(tp1[:4])
print(tp1[5:])
print(tp1[-2:])
print(tp1[-3:3:-1])
print(tp1[0:5:3])
元组方法与函数:列表上会更改内容的函数都无
法使用
# 下列程序报错
tp1 = (123,'hello','asckii')
num = tp1.pop() # pop() 函数用于随机移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
tp1 = (123,'hello','asckii')
print(len(tp1)) # len()正常使用
列表与元组数据互换
list():转为列表
tuple():装转为元组
tp1 = (123,'hello','999', 35.6)
list1 = list(tp1)
list1.append('china')
print(list1)
tp1 = tuple(list1)
print(tp1)
4.3.4. 元组与列表的区别
元组与列表都属于序列,都可以按照特定顺序存 储一组数据,类型不受限制
列表类似使用铅笔在纸上书写的文字,可以擦 掉,元素类似钢笔写下的文字,不可擦除,只能
换一张纸重写
区别
列表为可变序列,元素可以随时修改和删除,
元组为不可变序列,元素不可修改和删除,除
非整体替换
元组不支持append()
、
extend()
、
insert()
等
方法进行添加删除操作
元组和列表一样支持切片操作,但仅能通过切 片进行访问
元组比列表结构简单,占用资源少,程序运行速度快
元组比列表安全,若存储一组不可修改的数据则可以使用元组
4.4. 字典
4.4.1. 概念:字典属于可变序列,使用 “键-值”(key-value)的方式配对存储数 据,类似于新华字典中的“拼音-汉字”的 关系。
4.4.2. 格式:dictionary={key1: value1 ,key2:value2 ,……, keyn:valuen}
- dictionar为字典名称
- 字典使用花括号{}作为标志
- key1、key2、……、keyn为元素的键,必须唯 一,且不可变,可以是字符串、数字、元组
- value1、value2、……、valuen:为元素的值,可为任意数据、不需要唯一