python3笔记–容器的使用(2)
一、字典
字典是一种可变的容器模型,且可存储任意类型的对象。字典的每个键值key与value对之间用冒号(:)进行分割。每个对之间用(,)分割。整个字典包含在花括号({})之中。格式如下所示:
dict = {key1:value1,key2:value2,key3:value3}
字典中的key值是唯一的,但是value则不一定。value值可以是任意数据类型的,但是key键是不可变的。
1、访问字典
persons = {'alice':20,'tom':21,'rose':18}
print('Alice:', persons['alice'])
print('Tom:' , persons['tom'])
输出:
Alice: 20
Tom: 21
2、添加键-值对
字典是一种动态的结构,可以随时在字典中添加键-值对。要添加键-值对,可以指定字典名添加键和相关联的值。
persons = {'alice':20,'tom':21,'rose':18}
persons['edison'] = 26 #指定persons字典名,添加key和相关联的值
print(persons)
输出:{'alice': 20, 'tom': 21, 'rose': 18, 'edison': 26}
3、修改字典的值
修改字典的值,直接指定字典中key然后修改即可。
persons = {} #创建空字典
'''向字典里边添加键-值对'''
persons['alice'] = 20
persons['tom'] = 23
persons['edison'] = 26
print('修改前的字典:' , persons)
persons['alice'] = 15 #修改字典中alice相关联的值
print('修改后的字典:' , persons)
输出:
修改前的字典: {'alice': 20, 'tom': 23, 'edison': 26}
修改后的字典: {'alice': 15, 'tom': 23, 'edison': 26}
4、删除键-值对
对于不需要的键-值对,可以使用del语句删除,只需指定key值即可。但是需要注意的是删除之后的键-值永远的消失了。
persons = {'alice':20,'tom':21,'rose':18}
del persons['alice'] #使用del语句删除不需要的键-值对
print(persons)
输出:
{'tom': 21, 'rose': 18}
5、嵌套使用
①字典列表:将字典名存储在一个列表中。
persons_1 = {'alice':20,'tom':21,'rose':18}
persons_2 = {'edison':14,'dijkstra':26}
person = [persons_1,persons_2] #将字典名存储在列表中方便管理
print(person)
输出:
[{'alice': 20, 'tom': 21, 'rose': 18}, {'edison': 14, 'dijkstra': 26}]
②字典中存储列表
在某些情况下,需要将列表存储在字典中,例如alice的爱好一定不止一个,此时就需要将爱好以列表的形式存储在字典中。
person = {'name':'alice','hobby':['play games','basketball']}
print(person['name'])
print(person['hobby'])
输出:
alice
['play games', 'basketball']
③在字典中存储字典
例如在某网站需要存储访问用户的信息,此时可使用字典中嵌套字典的形式。
'''在字典中嵌套字典'''
persons = {
'user_1' : {
'name':'alice',
'age':21,
'place':'paris'
},
'user_2' : {
'name':'tom',
'age':22,
'place':'chinese'
},
'user_3' : {
'name':'rose',
'age':18,
'place':'idera'
}
}
print(persons['user_1'])
print(persons['user_2'])
print(persons['user_3'])
输出:
{'name': 'alice', 'age': 21, 'place': 'paris'}
{'name': 'tom', 'age': 22, 'place': 'chinese'}
{'name': 'rose', 'age': 18, 'place': 'idera'}
二、集合
集合(set)是一个无序的不重复的元素序列。可以使用大括号{}或者set()函数创建集合,需要注意的是创建一个空的集合必须使用set()创建而不是使用大括号{}创建,因为大括号{}是创建一个空字典。
创建格式:
parame = {value1,value2,…}或者set(value)
1、添加元素
①使用add()方法,直接将元素添加至集合中。
②使用update()方法添加元素,update()可以添加多个元素,并且参数可以是列表,元组,字典等。
value = set( ) #创建空的集合
'''使用add()方法添加元素至集合'''
value.add(1) #使用add()方法添加元素至集合中
value.add(2)
'''使用update()方法添加元素至集合'''
dict1 = {'name':'alice'}
dict1 = {'name':'alice'}
value.update(dict1) #添加字典
list1 = ['tom','rose']
value.update(list1) #添加列表
tuple1 = ('edison','dick')
value.update(tuple1) #添加元组
print(value)
输出:{1, 2, 'tom', 'dick', 'name', 'edison', 'rose'}
注:此时不是将字典的键-值对添加值集合中,集合只保存key
2、移除元素
①使用remove()方法,将元素从集合中移除,如果元素不存在,则会发生错误。
②使用discard()方法,将元素从集合中移除,如果元素不存在,也不会发生错误。
value = {'tom','rose','alice','edison'}
print(value)
'''使用remove()方法删除集合元素'''
value.remove('tom')
print(value)
'''使用discard()方法删除集合元素'''
value.discard('rose')
value.discard('lisa')
print(value)
3、集合的访问
集合的元素和字典一样都是无序的,同时集合也没有键-值对的概念,所以访问集合只有两种方式:
①通过集合名整体输出
②通过for循环实现元素遍历