字典是一种可变的容器,可以存储任意类型的数据
字典中的每个数据都是用"键" (key) 进行索引,而不像序列可以用下标进行索引
字典中的数据没有先后关系,字典的存储是无序的
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。key必须是不可变类型,如:数字、字符串、元组。
字典的表示方式是以{} 括起来,以冒号(:)分割的键值对,各键值对之间用逗号分隔开
字典的键一般是唯一的,如果重复最后的一个键值对会替换前面的
创建字典的最简单方式就是直接赋值,但需要注意的是保持键的唯一性,否则会导致后赋值的一个键值对替换掉前面的。键的数据类型必须是不可变的,如字符串、数字或元组等,而值可以取任何数据类型。
"""字典的创建"""
"""
{} 大括号是字典创建的符号
<class 'dict'> 字典类型字典中数据形式是键值对的形式, 即 key: value 的形式key: value 键值对之间用英文形式的冒号隔开key --> 冒号左边是字典的键, 在一个字典中键必须唯一: 键可以是字符串/数值/元组/布尔类型, 不能是列表取值是根据键取对应的值value --> 冒号右边是键的值, 可以是Python任意类型
"""
dict1 = {'name': '正心', 520: True, (1,): 18}
print(dict1['name']) # 正心
print(type(dict1)) # <class 'dict'># 空字典
dict2 = {}
dict3 = dict()# 注意:一般称冒号前面的为键(key),简称k;冒号后面的为值(value),简称v
'''
注意:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对
'''
dict1 = {'name': '正心','age': 18,'gender': '男'
}# 如果key不存在则新增此键值对
dict1['爱好'] = '吃喝玩乐'
print(dict1) # {'name': '正心', 'age': 18, 'gender': '男', '爱好': '吃喝玩乐'}# 如果key存在则修改这个key对应的值
dict1['gender'] = '女'
print(dict1) # {'name': '正心', 'age': 18, 'gender': '女', '爱好': '吃喝玩乐'}# 如果 key 不存在进行赋值操作,那么就会在字典对象里面新增键值对数据
dict1['工作'] = 'python' # 增加
print(dict1) # {'name': '正心', 'age': 18, 'gender': '女', '爱好': '吃喝玩乐', '工作': 'python'}
''' 1.del() / del - 指定键, 删除字典中键值对 '''
dict1 = {'name': '正心','age': 18,'gender': '男'
}# 指定键, 删除字典中键值对
del (dict1['gender'])
print(dict1) # {'name': '正心', 'age': 18}
del dict1['name']
print(dict1) # {'age': 18}''' 2.pop() - 用于获取指定 键 的值,并将这个 键-值 对从字典中移除 '''
dict1.pop('age') # 他也是有返回值,返回被删除数据的值
# 如果删除的键不存在
# dict1.pop('kk') # 报错''' 3.popitem() - 删除最后插入字典中的数据。在 python 解释器3.7之前的版本中,是删除一个随机的键'''
heroes = {'及时雨': '宋江', '玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘'}
heroes.popitem() # 删除最后一个元素
print(heroes) # {'及时雨': '宋江', '玉麒麟': '卢俊义', '花和尚': '鲁智深'}''' 4.clear() - 用于清空字典中的所有元素,变成一个空字典 '''
dict1.clear()
''' 修改 '''
# 定义一个字典
dict = {"name": "张三", "age": 20, "sex": "男"}
# 修改元素
dict["name"] = "李四"
print(dict) # {'name': '李四', 'age': 20, 'sex': '男'}# 如果键存在,则数据会被覆盖(其实就是修改数据)
dict1['age'] = 20 # 修改
dict1['name'] = '天空' # 修改''' update - 更新/合并字典 '''
"""合并字典"""
dict2 = {'name': '正心', 'age': 18, 'gender': '男', '爱好': '吃喝玩乐'}
dict3 = {'学校': '城市教育', '爱好': ['吃', '喝', '玩', '乐']}dict2.update(dict3)
print(dict2) # {'name': '正心', 'age': 18, 'gender': '男', '爱好': ['吃', '喝', '玩', '乐'], '学校': '城市教育'}
# 注意:如果key存在则修改这个key对应的值 ;如果key不存在则新增此键值对
访问get指定的键,与普通的字典查找结果一样,而使用get访问不存在的键是不会引发异常的,只是返回None值。
''' 取值 '''
# 字典的取值是通过键取获取到他的值(所以说我们的键必须唯一)
dict1 = {'name': '无敌','age': 18,'gender': '男'
}
# 通过键取获取值
print(dict1['name'])
# 如果键不存在
print(dict1[666]) # 报错
# get 取值方法,通过键去取值不存在的键不会报错
(666)) # 不会报错,由于它没有返回值,所以会返回 None''' 字典本身的一些方法 '''
# keys() 函数keys()返回一个字典的键值视图,列出字典中的所有键
print(dict1.keys()) # 返回字典所有键
# values()
print(dict1.values()) # 返回字典所有值
# itmes()
print(dict1.items()) # 返回字典的所有键和值''' 遍历 '''
# 键
for i in dict1:print(i) # 返回一个一个键,默认是 keys() for i in dict1.keys():print(i) # 返回一个一个键# 值
for i in dict1.values():print(i)# 键和值 - 返回的是元组类型
for i in dict1.items():print(i)# 解包键值对
dict1 = {'name': '天空','age': 18,'gender': '男'
}for key, value in dict1.items():print(key, value)''' 示例 '''
heroes = {'及时雨': '宋江', '玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘'}
if '及时雨' in heroes:print('该元素在字典中') # 输出
else:print('该元素不在字典中')
使用该方法进行复制,返回一个新字典,其包含与原来的字典相同的键值对
heroes = {'及时雨': '宋江', '玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘'}
heroes_copy = py()
print(heroes_copy) # {'及时雨': '宋江', '玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘'}
''' 取出 artist_name 键里面的值 '''
print(data['soginfo']['artist_list'][0]['artist_name'])
('soginfo').get('artist_list')[0]['artist_name'])
'''统计 python 中所有字符出现的次数1.获取所有的字符2.统计字符串出现的次数
'''
# count 可以的,都是不是很直观
d = {} # 定义空的字典用于保存
for i in this_str:if i not in d.keys(): # 如果字符串没有在字典的键里面,就代表这个字符的字典中是第一次出现的d[i] = 1else:d[i] += 1
本文发布于:2024-01-30 18:20:11,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170661001521925.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |