简介
介绍Pthon中的基本数据结构及其数据存储与使用。
本部分包括以下内容:
- 列表
- 元组
- 字符串
- 字典
- 集合
- 序列
1.元组
- 元组与列表类似,是一个不可变的序列。
- 用( )括号进行创建,一经创建就不能对其进行修改,类似于字符串。
- 使用整数索引 indexing 和切片slicing获取元组中元素
2.元组创建与访问
例1:使用( )来创建一个空元组.
my_tuple = () # 创建了一个空元组
print(my_tuple,type(my_tuple)) # <class 'tuple'>
例2: 创建了一有5个元素的元组,创建不为空的元组,( )可以省略
my_tuple = (1,2,3,4,5)
#创建不为空的元组,( )可以省略.
my_tuple = 10,20,30,40
my_tuple = 40,
print(my_tuple , type(my_tuple)) #(40,) <class 'tuple'>
例3: 元组一经创建,不能修改.下面代码出错
my_tuple=(1,2,3,4,5)
my_tuple[3]=10 #TypeError: 'tuple' object does not support item assignment
—> 16 my_tuple[3]=10 #TypeError: ‘tuple’ object does not support item assignment
例4:创建中的一些问题
- 1.元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。
my_tuple = (3) # 创建了一个空元组,实际 (3)被作为一个带括号的整数
print(my_tuple,type(my_tuple)) # 3 <class 'int'>
my_tuple = (3,) # 3后面加上逗号,说明是创建元组
print(my_tuple,type(my_tuple)) # <class 'tuple'>
#例如
print(8*(8)) #64,就是数8*8的计算
print(8*(8),) # (6, 6, 6, 6, 6, 6, 6, 6),将(6)重复了8次
例5:创建二维元组。
#直接赋值创建二维元组
x = (1, 10.31, 'python'), ('data', 11)
print(x) # ((1, 10.31, 'python'), ('data', 11))
print(x[0])# (1, 10.31, 'python')
print(x[0][0], x[0][1], x[0][2]) # 1 10.31 python
print(x[0][0:2]) # (1, 10.31)
3.更新与删除一个元组
元组一经建立,元素的元素值不能更改,但是元素所指对象的值可以改变的。
t1=(1,2,3,[4,5,6]) 建立 元组t1,有4个元素(4行*1列)
print(t1 ) # (1, 2, 3, [4, 5, 6])
t[3][0]=9 # t[3] 指向的是列表对象[ 4,5 ,6]。 这里t3的值没有改变,还是这个列表对象的id,但是列表中的一个元素值改了。
t1[3][0] = 9
print(t1) # (1, 2, 3, [9, 5, 6])
#同样理解下例。week元组中
week = ('Monday', 'Tuesday', 'Thursday', 'Friday')
week = week[:2] + ('Wednesday',) + week[2:]
print(week) # ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday')
4.元组相关的操作符
- 等号操作符:==
- 连接操作符: +
- 重复操作符: +
- 成员关系运算符in ,not in
- 元组重复拼接:*
#例:
t1=('Python','Ali')
t2=('Ali','Python');
t3=('Python','Ali');
print(t1==t2 ) # False
print(t1==t3) # True 只有成员、成员位置都完相同,返回True。
t4=('campus')
ts=t1+t2
print(ts) #首尾相接
tm=t1*3 # ('Python', 'Ali', 'Python', 'Ali', 'Python', 'Ali') ,重复3次首尾相接
print('Python' in tm ) #True
print('Python' not in tm ) #False
5.内置方法
元组的大小和内容都不可更改,针对于元组的操作只有count 与index 两种方法
t='Python','Jave','network','Python'
print(t.count('Python')) #2 出现的次数
print(t.index('Python')) #0 第一次出现的指标值
6.元组解构
元组的解包(解构):就是将元组当中每一个元素都赋值给一个变量
例1:解压一维元组
my_tuple = 10 , 20 , 30 , 40
a,b,c,d=my_tuple
print(a,b,c,d) # 10 20 30 40
例2:解压二维元组
t = (1, 10.31, ('OK', 'python'))
(a, b, (c, d)) = t
print(a, b, c, d) # 1 10.31 OK python
例3: 在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致
也可以在变量前边添加通配符[*], 下列中rest获得元组中剩余的对象
t = (1, 10.31, 'OK', 'python')
a,b,*rest=t
print (a,b,rest) #1 10.31 ['OK', 'python']