08——元组&字典&集合
1. 元组简介
元组基本介绍
• 元组表现形式tuple
• 元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表)
• 使用()创建元素
#创建元组
#用()来创建元组
my_tuple = ()
print(my_tuple,type(my_tuple)) #返回:() <class 'tuple'>
• 元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括号可以省略
# 当元组不是空元组时,括号可以省略
my_tuple = 10,20,30,40
print(my_tuple,type(my_tuple)) #(10, 20, 30, 40) <class 'tuple'>
• 元组解包指将元组当中的每一个元素都赋值给一个变量
#元组的解包
#解包就是将元组当中的每一个元素都赋值给变量
my_tuple = 10,20,30,40
# a,b,c,d = my_tuple
# print('a= ',a) # 返回:a= 10
# print('b= ',b) # b= 20
# print('c= ',c) # c= 30
# print('d= ',d) # d= 40
#在元组解包时,变量的数量必须和元组中元素要一一对应
#如果出现变量和元素没有对等的地情况下,我们可以在变量前面加个*
#这样变量就会将获取元组中所有剩余的元素以列表形式返回
my_tuple = 10,20,30,40
a,b,*c= my_tuple
print('a= ',a) #返回:a= 10
print('b= ',b) #b= 20
print('c= ',c) #c= [30, 40]
a,*b,c= my_tuple
print('a= ',a) #返回:a= 10
print('b= ',b) #b= [20, 30]
print('c= ',c) #c= 40
*a,b,c= my_tuple
print('a= ',a) #返回:a= [10, 20]
print('b= ',b) #b= 30
print('c= ',c) #c= 40
2. 可变对象
Python中,数值类型(int和float)、字符串str、元组tuple都是不可变类型。而列表list、字典dict、集合set是可变类型
可变对象中都保存了三个数据
• id(标识)
• type(类型)
• value(值)
#列表是一个可变对象
a = [1,2,3]
a[0] = 10 #改对象
print(a) #返回结果:[10,2,3]
#这个操作是通过变量去修改对象的值
#这种操作不会改变变量所指向的对象
a = [1,2,3]
a = [4,5,6] #改变量
print(a) #返回结果:[4,5,6]
#这个操作在给变量重新赋值
#这种操作会改变变量所指向的对象
a = [1,2,3]
print('修改前:',a,id(a)) #返回结果:修改前: [1, 2, 3] 2109649135624
a[0] = 30
print('修改后:',a,id(a)) #返回结果:修改后: [30, 2, 3] 2109649135624
#通过变量给列表重新赋值
a = [4,5,6]
print('修改后:',a,id(a)) #返回结果:修改后: [4, 5, 6] 1378179884360
注意:改对象的值会影响所有指向该对象的变量
#为一个变量重新赋值,不会影响其他的变量
a = [1,2,3]
b = a
b = [10,2,3]
print('a',a,id(a)) #a [1, 2, 3] 1899127842760
print('b',b,id(b)) #b [10, 2, 3] 1899127842120
3. 字典简介
3.1 字典的基本介绍
• 字典属于一种新的数据结构称为映射(mapping)
• 字典的作用和列表类似,都是用来存储对象的容器
• 列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反
• 在字典中每一个元素都有唯一的名字,通过这个唯一的名字可以找到指定的元素
• 这个唯一的名字我们称之为key 通过key可以快速查询value 也可以称之为值
• 字典我们也称之为键值对(key-value)结构
• 每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)
• 创建一个有数据的字典 语法 {key:value}
• 字典的值可以是任意对象 字典的键可以是任意的不可变对象(int str bool tuple…)
#字典的值可以是任意对象
#{
key:value,key:value……}
d = {
'name':'葫芦娃','age':'7','gender':'男'}
print(d,type(d)) #返回结果:{
'name': '葫芦娃', 'age': '7', 'gender': '男'} <class 'dict'>
#字典键(key)是不能重复的,如果出现重复,后面的值会替换前面的值
• 字典的键是不能重复的,如果出现重复的后面的会替换前面的
d1 = {
'name':'葫芦娃','age':'7','gender':'男','name':'钢铁侠'}
print(d1,type(d1)) #返回结果:{
'name': '钢铁侠', 'age': '7', 'gender': '男'} <class 'dict'>
也可以这样写:
d = {
'name':'葫芦娃',
'age':'7',
'gender':'男'
}
print(d,type(d)) #