Python学习心得(7)
字典
1、定义
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号分割,整个字典包括在花括号 { } 中 。
d = { key1 : value1 , key2 : value2 }
d = {"name":"张三","age":18,"sex":"男","height":165,"weight":65}
d = {}
2、关于键和值
1、键可以是整数,浮点数,字符串,元组,布尔 ,None,键是不可变的
2、列表和字典不允许做键值
3、键值重复,后面的覆盖前面的
4、值可以是任意类型,也可以相同,也可以是None,值是可变的,可以在操作中添加或者删除。
3、操作
最简单的定义一个字典:
d = {"name":"张三","age":18,"sex":"男","height":165,"weight":65}
将定义的字典输出:
d = {'Name': '张三', 'Age': 18, 'sex': '男'}
print("姓名:", d['Name'])
print("年龄:", d['Age'])
#姓名: 张三
#年龄: 18
d.clear() 用于删除字典内所有元素。
d = {'Name': '张三', 'Age': 18, 'sex': '男'}
print("姓名:", d['Name'])
d.clear()
print("删除后的字典:",d)
#姓名: 张三
#删除后的字典: {}
d.pop() 删除字典给定键 key 及对应的值。
d = {'Name': '张三', 'Age': 18, 'sex': '男'}
print("删除前",d)
d.pop("sex")
print("删除后",d)
#删除前 {'Name': '张三', 'Age': 18, 'sex': '男'}
#删除后 {'Name': '张三', 'Age': 18}
d.get()获取键所对应的值,用法与直接输出键相同
d = {'Name': '张三', 'Age': 18, 'sex': '男'}
print(d.get("Name"))
print(d["Name"])
#张三
#张三
d.copy()拥有返回一个字典的值的浅复制,用法为:
d2 = d1.copy()
因为复制为浅复制,所以在复制后对原字典进行改变操作,对所复制出来的d2不产生影响
d = {'Name': '张三', 'Age': 18, 'sex': '男'}
d2 = d.copy()
d.update(height = 170)
print(d)
print(d2)
#{'Name': '张三', 'Age': 18, 'sex': '男', 'height': 170}
#{'Name': '张三', 'Age': 18, 'sex': '男'}
d.update()用来对字典的键值对进行更新,或者说添加,在括号中输入添加的键及其对应的值即可。
d = {'Name': '张三', 'Age': 18, 'sex': '男'}
print(d)
d.update(height = 170)
print(d)
#{'Name': '张三', 'Age': 18, 'sex': '男'}
#{'Name': '张三', 'Age': 18, 'sex': '男', 'height': 170}
d.popitem()用于获取字典的最后一个键值对,并在原字典基础上删除该键值对。
d = {'Name': '张三', 'Age': 18, 'sex': '男'}
print(d.popitem())
print(d)
#('sex', '男')
#{'Name': '张三', 'Age': 18}
d.values()用来以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回字典中的所有值。
d = {'Name': '张三', 'Age': 18, 'sex': '男'}
print(d.values())
#dict_values(['张三', 18, '男'])
d.keys()以列表返回一个字典所有的键。
d = {'Name': '张三', 'Age': 18, 'sex': '男'}
print(d.keys())
#dict_keys(['Name', 'Age', 'sex'])
d.items()以列表返回可遍历的(键, 值) 元组数组。
d = {'Name': '张三', 'Age': 18, 'sex': '男'}
for key,value in d.items():
print(key,value)
#Name 张三
#Age 18
#sex 男