字典的定义:
info = {'name':'xiaohua','age':18,'addr':'石家庄'}
字典的增与字典改:
zidian[“键”] = 键值
这个键没有在字典中存在,就属于新增。这个键已经在字典中存在,就属于修改。
In [2]: info = {'name':'xiaohua','age':18,'addr':'石家庄'}
In [3]: info['sex'] = '女' # 字典里没有'sex'键 所以添加到字典里
In [4]: info
Out[4]: {'name': 'xiaohua', 'age': 18, 'addr': '石家庄', 'sex': '女'}
In [5]: info['name'] = 'xiaocao' #'name'已存在所以小花修改为小草
In [6]: info
Out[6]: {'name': 'xiaocao', 'age': 18, 'addr': '石家庄', 'sex': '女'}
字典的删:
del zidian[“键”]
In [6]: info
Out[6]: {'name': 'xiaocao', 'age': 18, 'addr': '石家庄', 'sex': '女'}
In [7]: del info['sex']
In [8]: info
Out[8]: {'name': 'xiaocao', 'age': 18, 'addr': '石家庄'}
字典的查:
zidian[“键”]
如果这个键不存在的话,会报错。
如果这个键存在的话,就会输出这个键值。
zidian.get(“键”)
如果这个键不存在的话,没有输出,也就是假。
如果这个键存在的话,就会输出这个键值
字典的相关扩展:
zi = {"name": "xiaoshu", "age": 20, "addr": "上海"}
想要遍历这个字典,有很多的困难:
zi = {"name": "xiaoshu", "age": 20, "addr": "上海"}
print( len(zi) )
i = 0
while i < len(zi):
print( zi[i] )
i += 1
解决的方法就是:
字典的名字.keys()
得到的是字典中的所有键,是以对象的形式进行返回的(是可迭代的对象,也就是可以循环的对象)
字典的名字.values()
得到的是字典中的所有键值,是以对象的形式进行返回的(是可迭代的对象,也就是可以循环的对象)
字典的名字.items()
得到的是字典中的每一对键与键值,每一对键与键值是元组的形式呈现,最后,将这些元组组成了对象(是可迭代的对象,也就是可以循环的对象).
示例:[('name', 'xiaoshu'), ('age', 20), ('addr', '上海')]
拆包:
yuan = ("aa", "bb", "cc")
不用拆包的代码:
变量a = yuan[0]
变量b = yuan[1]
变量c = yuan[2]
用拆包的代码:
a, b, c = yuan
将拆包与字典的名字.items()结合使用:
zi = {"name": "xiaoshu", "age": 20, "addr": "上海"}
# print( zi.items() )
#for item in zi.items():
# print(item) # 第一遍循环的时候item的值是:('name', 'xiaoshu')
# 第二遍循环的时候item的值是:('age', 20)
# 第三遍循环的时候item的值是:('addr', '上海')
根据上面的情况,就可以写出下面的代码:
for a, b in zi.items():
print("键是%s, 键值是%s" % (a, b))
元组需要注意的事项:元组里面只有一个项的时候,最后需要添加一个逗号