赞
踩
字典 dict
1、创建方法
(1)字典语法1:
d = {key:value,key:value,key:value}
字典的值(value)可以是任意对象,字典的键(key)可以是任意的不可变对象(int\str\bool\tuple)
字典的键(key)不可重复
- d_1 = {'name':'曹操','age':'50','gender':'男'}
- print(d_1)
- # 根据键来获取值
- print(d_1['name'])
- print(d_1['age'])
-
- print("="*50)
==================================================
{'name': '曹操', 'age': '50', 'gender': '男'}
曹操
50
==================================================
(2)字典语法2:
使用dict()函数:
方法【1】
- d_2 = dict(name='刘备',age=50,gender='男')
- print(d_2)
- # 根据键来获取值
- print(d_2['name'])
- print(d_2['age'])
-
- print("="*50)
==================================================
{'name': '刘备', 'age': 50, 'gender': '男'}
刘备
50
==================================================
方法【2】
- d_3 = dict([('name','孙权'),('age',18),('gender','男')])
- print(d_3)
- # 根据键来获取值
- print(d_3['name'])
- print(d_3['age'])
-
- print("="*50)
==================================================
{'name': '孙权', 'age': 18, 'gender': '男'}
孙权
18
==================================================
2、获取字典中的值
get(key[,default])
根据键来获取字典中的值,若获取的键在字典中不存在,会返回None
- print(d_3)
- print(d_3.get('name'))
- print(d_3.get('country'))
- print(d_3.get('country','默认值'))# 获取不到时,返回特定的值
-
- print("="*50)
==================================================
{'name': '孙权', 'age': 18, 'gender': '男'}
孙权
None
默认值
==================================================
3、 len()
len()获取字典中键值对的个数
- print(d_3)
- print(len(d_3))
- print("="*50)
==================================================
{'name': '孙权', 'age': 18, 'gender': '男'}
3
==================================================
4、in 和 not in
in ,检查字典中是否包含指定的键,
not in ,检查字典中是否不包含指定的键
- print(d_3)
- print('name' in d_3)
- print('country' in d_3)
- print("="*50)
==================================================
{'name': '孙权', 'age': 18, 'gender': '男'}
True
False
==================================================
5、修改字典
(1) d[key] = value
如果key存在则覆盖,不存在则添加
- print(d_3)
-
- d_3['name'] = '孙策'
- print(d_3)
- d_3['country'] = '吴国' # 不存在,则添加
- print(d_3)
-
- print("="*50)
==================================================
{'name': '孙权', 'age': 18, 'gender': '男'}
{'name': '孙策', 'age': 18, 'gender': '男'}
{'name': '孙策', 'age': 18, 'gender': '男', 'country': '吴国'}
==================================================
(2)setdefault(key[,default])
如果key已经存在于字典中,则返回key的值,不对字典进行操作
如果key不存在,则向字典中添加这个key,并设置value
- print(d_2)
- result = d_2.setdefault('name','诸葛亮')
- print(result)
- result = d_2.setdefault('country','蜀国')
- print(result)
- print(d_2)
-
- print("="*50)
==================================================
{'name': '刘备', 'age': 50, 'gender': '男'}
刘备
蜀国
{'name': '刘备', 'age': 50, 'gender': '男', 'country': '蜀国'}
==================================================
(3)update([other])
将其他字典中的key-value添加到当前字典中
如果有重复的key,则后边的会替换到当前的
- print('d_1=',d_1)
- d_4 = dict(name='曹操',country='魏国',job='丞相')
- print('d_4=',d_4)
-
- result =d_1.update(d_4) # 返回值是 none
- print(result)
- print('d_1_uptate=',d_1)
-
- print("="*50)
==================================================
d_1= {'name': '曹操', 'age': '50', 'gender': '男'}
d_4= {'name': '曹操', 'country': '魏国', 'job': '丞相'}
None
d_1_uptate= {'name': '曹操', 'age': '50', 'gender': '男', 'country': '魏国', 'job': '丞相'}
==================================================
6、删除操作
(1)del,删除字典中的key-val
- print(d_1)
- del d_1['job']
- print(d_1)
- print("="*50)
==================================================
{'name': '曹操', 'age': '50', 'gender': '男', 'country': '魏国', 'job': '丞相'}
{'name': '曹操', 'age': '50', 'gender': '男', 'country': '魏国'}
==================================================
(2) pop(key[,default])
# 根据key删除字典中的key-value,并返回被删除的value
# 若删除不存在的key,会报错;如果指定了默认值,再删除不存在的key,则会返回默认值
- print(d_1)
- result = d_1.pop('country')
- print(result)
- print(d_1)
- result = d_1.pop('job','key不存在')
- print(result)
- print(d_1)
- print("="*50)
==================================================
{'name': '曹操', 'age': '50', 'gender': '男', 'country': '魏国'}
魏国
{'name': '曹操', 'age': '50', 'gender': '男'}
key不存在
{'name': '曹操', 'age': '50', 'gender': '男'}
==================================================
(3) claer() 清空字典
- print(d_1)
- d_1.clear()
- print(d_1)
- print("="*50)
==================================================
{'name': '曹操', 'age': '50', 'gender': '男'}
{}
==================================================
7、 复制操作
# copy(),用于对字典进行浅复制,复制后的对象和原对象是独立的,修改一个不会影响另一个
# 注意,浅复制会简单复制对象内部的值,如果值也是一个可变对象,则这个可变对象不会被复制
- d_5 = d_2 #指向同一对象
- d_6 = d_2.copy() #新建一个对象
- print('d_2=',d_2,id(d_2))
- print("d_5=",d_5,id(d_5))
- print('d_6=',d_6,id(d_6))
-
- print("="*50)
==================================================
d_2= {'name': '刘备', 'age': 50, 'gender': '男', 'country': '蜀国'} 1783221749944
d_5= {'name': '刘备', 'age': 50, 'gender': '男', 'country': '蜀国'} 1783221749944
d_6= {'name': '刘备', 'age': 50, 'gender': '男', 'country': '蜀国'} 1783191858488
==================================================
8、 遍历字典
(1)keys()
该方法会返回字典的所有的key,为一个序列,序列中保存有字典的所有的键(key)
- print(d_2)
- print(d_2.keys()) # 获取所有键
- for k in d_2.keys(): # 遍历key()获取所有键
- print(k,d_2[k])
- print("="*50)
==================================================
{'name': '刘备', 'age': 50, 'gender': '男', 'country': '蜀国'}
dict_keys(['name', 'age', 'gender', 'country'])
name 刘备
age 50
gender 男
country 蜀国
==================================================
(2)values()
该方法会返回一个序列,序列中保存有字典的所有的值
- for v in d_2.values():
- print(v)
- print("="*50)
==================================================
刘备
50
男
蜀国
==================================================
(3)items()
# 该方法返回字典中所有的项
# 它会返回一个序列,序列包含有双值子序列,双值是,key,value
- print(d_2.items())
- for k,v in d_2.items():
- print(k,'=',v)
- print("="*50)
==================================================
dict_items([('name', '刘备'), ('age', 50), ('gender', '男'), ('country', '蜀国')])
name = 刘备
age = 50
gender = 男
country = 蜀国
==================================================
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。