Python数据类型(四):字典类型及常用方法(update、del、pop、keys、values、items、sort)

字典是由 键值对 组成的集合。通常使用键来访问数据,效率高。支持数据添加、修改、删除

一、字典的特点

  • 不是序列类型,没有索引值,是无序的键值集合,Python内置的高级数据类型
  • 使用 { } 表示字典对象,每个键值用逗号分隔
  • 键 必须是不可变的类型 如元组、字符串
  • 键必须是唯一的,如果存在重复的键,后者会覆盖前者
dict1 = {}   # 空字典
dict2 = {'name':'aas' , 'age':43 , 'class':'19计算机' }
print(type(dict1))
print(dict2)

dict1['name'] = 'Lzh'
dict1['age'] = 21
dict1['class'] = 'jisuanji1'
print(dict1)
print('字典的长度: ',len(dict1)) # len(dict) 字典的长度与键值个数相等

'''
<class 'dict'>
{'name': 'aas', 'age': 43, 'class': '19计算机'}
{'name': 'Lzh', 'age': 21, 'class': 'jisuanji1'}
字典的长度:  3
'''

二、查找

dict2 = {'name':'aas' , 'age':43 , 'class':'19计算机' }
print(dict2['class']) # 通过 键 查找:dict['keyName']

'''
19计算机
'''

三、修改

语法

# 赋值修改
dict['keyName'] = value

# update()修改
# 若键存在则修改,没有则添加键及值
dict.update({'keyName:value' })
dict.update({
	'keyName1':value1
	'keyName2':value2
	...
})

示例

dict2 = {'name': 'ksg', 'age': 43, 'class': '18商务管理'}
dict2['name'] = 'dlg' # 直接用键定位修改
print(dict2)

dict2.update({'age':35}) # update({ 'keyName':value })
dict2.update({'weight':75}) # 若原字典中没有这个键,则添加
print(dict2)

'''
{'name': 'dlg', 'age': 43, 'class': '18商务管理'}
{'name': 'dlg', 'age': 35, 'class': '18商务管理', 'weight': 75}
'''

四、删除

语法

del dict['keyName']

dict.pop('keyName')

示例

dict2 = {'name':'aas' , 'age':43 , 'class':'19计算机' }

# del dict['keyName']
del dict2['age']
print(dict2)

# dict.pop('keyName')
dict2.pop('class')
print(dict2)

'''
{'name': 'aas', 'class': '19计算机'}
{'name': 'aas'}
'''

五、获取字典中的数据

语法

# 获取键 dict.keys(),返回的类型为dict_keys
dict.keys()

# 获取值 dict.values(),返回类型为dict_values
dict.values()

# 获取所有键和值 dict.items(),返回类型为dict_items
dict.items()

示例

dict2 = {'name':'aas' , 'age':43 , 'class':'19计算机' }
print(dict2.keys()) # 获取键 dict.keys()

print(dict2.values()) # 获取值 dict.values()

print(dict2.items()) # 获取所有键和值 dict.items() 。 
for item in dict2.items():
    print(item)
for key,value in dict2.items():
    # key,value分别对应item的第一个数据和第二个数据
    print("%s = %s"%(key,value))

'''
dict_keys(['name', 'age', 'class'])
dict_values(['aas', 43, '19计算机'])
dict_items([('name', 'aas'), ('age', 43), ('class', '19计算机')])
('name', 'aas')
('age', 43)
('class', '19计算机')
name = aas
age = 43
class = 19计算机
'''

六、排序

语法:

sorted(dict.items(), key=lambda , d:d[n])) 

示例:

dict2 = {'name':'aas' , 'age':43 , 'class':'19计算机' }
print(sorted(dict2.items(),key=lambda d:d[0])) # 按照键来排序
print(sorted(dict2.items(),key=lambda d:d[1])) # 按照值(数字和字符串不能进行排序,会报错)来排序

'''
[('age', 43), ('class', '19计算机'), ('name', 'aas')]
TypeError: '<' not supported between instances of 'int' and 'str'
'''

版权声明:本文为Dae_Lzh原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。