Python数据类型_字典
1、定义字典
在Python中,字典是一种存贮数据的容器,以键值对的形式存在,类似于结构体。定义方式 dict = {'Name':'张三','Sex':'Man','Age':30};
其中Name、Sex、Age称之为键,张三、Man、30是为值。在同一个字典中,键是唯一的,不允许重复。值可以是任何数据类型
2、访问字典
字典访问是 字典名称[键];
dic={'Name':'Zhangsan','Age':28,'Sex':'Man'};
print(dic['Name']); 执行结果是: Zhangsan
如果访问字典中不存在的键,会抛出异常 例如: print(dic['123']); 因为
3、修改字典
dic={'Name':'Zhangsan','Age':28,'Sex':'Man'}; dic['Name']='Lisi'; print(dic['Name']); 执行结果是: Lisi
dic={'Name':'Zhangsan','Age':28,'Sex':'Man'}; dic['NativePlace']='Hubei'; print(dic['NativePlace']); 执行结果是: Hubei
这里的NativePlace本来是不存在的,赋值后,将会自动新增一个键:NativePlace,并赋值为:Hubei
4、删除字典
字典删除可以删除单一元素,也可以删除整个字典
dic={'Name':'Zhangsan','Age':28,'Sex':'Man'}; del dic['Name']; 删除字典键 Name print(dic['Name']);
下面是异常信息
Traceback (most recent call last):
File "F:/PythonProject/venv/Scripts/Practice/03.py", line 3, in <module>
print(dic['Name']);
KeyError: 'Name'
从这些异常信息可以看出来,键Name已经被删除了
del dic 删除整个字典
dic={'Name':'Zhangsan','Age':28,'Sex':'Man'}; del dic; print(dic['Name']);
Traceback (most recent call last):
File "F:/PythonProject/venv/Scripts/Practice/03.py", line 3, in <module>
print(dic['Name']);
NameError: name 'dic' is not defined
5、字典方法
5.1 len() 返回字典的元素个数,键的数量
dic1={'Name':'Zhangsan','Age':28,'Sex':'Man'}; dic2={'Sex':'Man'}; print(len(dic1)); 执行结果是3
5.2 str() 返回字典字符串
dic1={'Name':'Zhangsan','Age':28,'Sex':'Man'}; dic2={'Sex':'Man'}; print(str(dic1));
执行结果是 {'Name': 'Zhangsan', 'Age': 28, 'Sex': 'Man'}
5.3 clear() 删除字典所有元素
dic1={'Name':'Zhangsan','Age':28,'Sex':'Man'}; dic2={'Sex':'Man'}; dic1.clear(); print(str(dic1)); 返回一个空字典
5.4 copy() 复制字典
dic1={'Name':'Zhangsan','Age':28,'Sex':'Man'}; dic2={'Sex':'Man'}; dic3=dic1.copy(); print(str(dic3));
执行结果是: {'Name': 'Zhangsan', 'Age': 28, 'Sex': 'Man'}
5.5 fromkeys() 组合字典 a=['Name','Age']; c=dict.fromkeys(a,20); print(str(c));
执行结果是: {'Name': 20, 'Age': 20}
5.6 get() 访问字典
dic1={'Name':'Zhangsan','Age':28,'Sex':'Man'}; dic2={'Sex':'Man'}; print(dic1.get('Name','gang')); print(dic1.get('Name1','gang'));
执行结果是:Zhangsan
gang
说明:第二个参数是默认值,当访问的键不存在时,返回默认值
5.7 判断键是否在字典里面 in 这个不是方法
dic1={'Name':'Zhangsan','Age':28,'Sex':'Man'}; dic2={'Sex':'Man'}; if 'Name' in dic1: print('true') else: print('false'); 执行结果是:true
5.8 items() 以列表的形式返回字典
dic1={'Name':'Zhangsan','Age':28,'Sex':'Man'}; dic2={'Sex':'Man'}; print(dic1.items());
执行结果: dict_items([('Name', 'Zhangsan'), ('Age', 28), ('Sex', 'Man')])
5.9 keys() 以列表的形式返回字典所有的键 dic1={'Name':'Zhangsan','Age':28,'Sex':'Man'}; dic2={'Sex':'Man'}; print(dic1.keys());
执行结果: dict_keys(['Name', 'Age', 'Sex'])
5.10 setdefault() 设置默认值,如果键不存在,则新增键并赋值
dic1={'Name':'Zhangsan','Age':28,'Sex':'Man'}; dic2={'Sex':'Man'}; dic2.setdefault('Sex1','woman'); print(dic2);
执行结果是: {'Sex': 'Man', 'Sex1': 'woman'}
5.11 update() 更新字典
dic1={'Name':'Zhangsan','Age':28}; dic2={'Sex':'Man'}; dic1.update(dic2); print(dic1);
执行结果是: {'Name': 'Zhangsan', 'Age': 28, 'Sex': 'Man'}
5.12 values 返回字典中的所有值
dic1={'Name':'Zhangsan','Age':28}; dic2={'Sex':'Man'}; print(dic1.values());
执行结果是: dict_values(['Zhangsan', 28])
5.13 pop() 删除键
dic1={'Name':'Zhangsan','Age':28}; dic2={'Sex':'Man'}; dic1.pop('Age',21); print(dic1);
执行结果是: {'Name': 'Zhangsan'}
5.14 popitem() 删除最后一个键
dic1={'Name':'Zhangsan','Age':28,'Sex':'Man'}; dic2={'Sex':'Man'}; dic1.popitem(); print(dic1);
执行结果是{'Name': 'Zhangsan', 'Age': 28}