dicts = {'hello':'world',(1,2,3):899,'李白':[{12:33}]}
print(dicts)
要求
1.键不能是可变的(可变set、list、dict——增删改查)
2.键不可重复(str、tuple、int、float、bool——不可变)
一、字典出现重复的键会怎么样?
dicts = {'李白':'world',(1,2,3):899,'李白':[{12:33}]}
print(dicts)
结果:{'李白': [{12: 33}], (1, 2, 3): 899} 会自动合并,赋最后出现的值
二、字典方法
1.增加
#方法一
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
dicts['你好'] = '杜甫'
print(dicts)
#方法二
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
dicts.update({'你好': '杜甫'}) #实际上放的是另一个字典,实际上是两个字典的合并
print(dicts) #打印的是这个字典本身,是在原来的字典里面变化的,所以说字典是可变的
结果:
{'hello': 'world', (1, 2, 3): 98, '李白': [{12: 33}], '你好': '杜甫'}
{'hello': 'world', (1, 2, 3): 98, '李白': [{12: 33}], '你好': '杜甫'}
2.删除(根据字典的键)
#方法一
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
a = dicts.pop('hello') #弹出的是删除的键所对应的值
print(a,dicts)
#方法二
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
del dicts['hello']
print(dicts)
结果:
world {(1, 2, 3): 98, '李白': [{12: 33}]}
{(1, 2, 3): 98, '李白': [{12: 33}]}
#方法三
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
print(dicts.clear()) #清空字典
结果:None
3.修改
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
dicts['hello'] = '柳宗元'
print(dicts)
结果:
{'hello': '柳宗元', (1, 2, 3): 98, '李白': [{12: 33}]}
4.查询
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
print(list(dicts.keys()),dicts.values()) #可以把字典转成列表进行取值,就可以用列表的方法了
print(dicts.items())
结果:
['hello', (1, 2, 3), '李白'] dict_values(['world', 98, [{12: 33}]])
dict_items([('hello', 'world'), ((1, 2, 3), 98), ('李白', [{12: 33}])])
1.打印所有键的值
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
for i in dicts.keys():
print(i)
结果:
hello
(1, 2, 3)
李白
2.打印所有的值
print(dicts.values())
结果:dict_values(['world', 98, [{12: 33}]])
5.字典遍历的两种方法
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
# 方法一
for a,b in dicts.items():
print(a,b)
结果:
hello world
(1, 2, 3) 98
李白 [{12: 33}]
# 方法二
for a in dicts: #直接遍历,遍历出来的是字典的键
print(a,dicts[a])
结果:
hello world
(1, 2, 3) 98
李白 [{12: 33}]
6.判断字典键里有没有这个值
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
if 'hello' in dicts:
print("有!")
结果:有!
7.用字典统计字符串中每个字母出现的个数?
1.#第一种
strs = 'skcclfdlcgdc'
dicts = {}
for i in strs:
dicts[i] = strs.count(i) #引字母作为键dicts[i],统计次数
print(dicts)
结果:{'s': 1, 'k': 1, 'c': 4, 'l': 2, 'f': 1, 'd': 2, 'g': 1}
2.#第二种
strs = 'skcclfdlcgdc'
dicts = {}
for i in strs:
if i not in dicts: #判断取出的值是否在字典里面
dicts[i] = 1
else:
dicts[i] = dicts[i] + 1 #加入的话,取出来再给它+1
print(dicts)
结果:{'s': 1, 'k': 1, 'c': 4, 'l': 2, 'f': 1, 'd': 2, 'g': 1}