在Python中,字典(Dictionary)是一种内置的数据烈性,是无序的数据结构,用于存储键值对(key-value)。字典中的每个元素由一个键(key)和一个对应的值(value)组成,键和值之间使用冒号(:)进行分隔,每个键值对之间使用逗号(,)进行分隔。字典中的键必须是唯一的,而值可以是任意类型的对象,字典可以用来 存储多个数据。
如:
mydict = {'浪潮信息': 17.4, '紫光股份': 28.6, '光迅科技': 7.56,'中科曙光':14.55}
print(mydict)
Python中的字典主要有以下一些特点:
无序性:字典中的元素没有固定的顺序,不能通过索引来访问元素。
可变性:可以向字典中添加、修改或删除元素。
唯一键:字典中的键必须是唯一的,如果添加了相同的键,则后面的键值对会覆盖前面的键值对。
值可重复性:在字典中的键值对中,键是唯一的,而值是可以重复的,即同一值可以跟到不同的键值后。
创建字典
很显然,使用字典之前需要先创建。在Python中,可以使用花括号 {} 或者 dict() 函数来创建字典。字典由键值对组成,每个键值对之间使用逗号 , 键和值之间分隔使用冒号 : 。以下是几种创建字典的方式示例:
创建字典
1、使用{} 创建字典:
# 创建一个空字典
my_dict = {}
# 创建一个包含键值对的字典
mydict = {'浪潮信息': 17.4, '紫光股份': 28.6, '光迅科技': 7.56,'中科曙光':14.55}
print(mydict)
输出:{'浪潮信息': 17.4, '紫光股份': 28.6, '光迅科技': 7.56, '中科曙光': 14.55}
2、使用 dict() 函数创建字典:
# 创建一个空字典
mydict = dict()
# 创建一个包含键值对的字典
mydict = dict(key1='value1', key2='value2', key3='value3')
输出:{'浪潮信息': 17.4, '紫光股份': 28.6, '光迅科技': 7.56, '中科曙光': 14.55}
键值之间通过“=”链接。
# 使用列表或元组创建字典
实际就是将元组转换为字典的方式。
mydict1 = dict([('key1', 'value1'), ('key2', 'value2'), ('key3', 'value3')])
{'浪潮信息': '17.4', '紫光股份': '28.6', '光迅科技': '7.56'}
3、使用字典推导式创建字典:
# 创建一个包含键值对的字典
mydict = {key: value for key, value in [('浪潮信息', '17.4'), ('紫光股份', '28.6'), ('光迅科技', '7.56')]}
print(mydict)
输出:{'浪潮信息': '17.4', '紫光股份': '28.6', '光迅科技': '7.56'}
4、通过一个字典创建另一个字典copy(浅拷贝)
mydict = {key: value for key, value in [('浪潮信息', '17.4'), ('紫光股份', '28.6'), ('光迅科技', '7.56')]}
print(mydict)
dictcp= mydict.copy()
dictcp
输出: {'浪潮信息': '17.4', '紫光股份': '28.6', '光迅科技': '7.56'}
5、fromkeys(seq[, value])
使用指定的序列元素作为键,创建一个新字典,所有键对应的值都是 value。dictaa=dict.fromkeys(['人形机器人','小米汽车','短剧游戏','多模态Ai'])
dictaa
输出:{'人形机器人': None, '小米汽车': None, '短剧游戏': None, '多模态Ai': None}
注意此处的值,对应所有的键key,而不是和键一一对应的,如果没有值,则自动赋值为空。
访问字典
在Python中,可以通过键来访问字典中的值。以下是几种常见的访问字典的方式:
1、利用方括号和键的方式,可以直接访问字典中对应键的值。
mydict = dict(浪潮信息=17.4, 紫光股份= 28.6, 光迅科技=7.56,中科曙光=14.55)
print(mydict['浪潮信息'])
输出:17.4
2、使用get()方法访问值
get()方法可以根据给定的键来获取对应的值,如果键不存在,会返回None。
print(mydict['光迅科技'])
输出: 7.56
3、使用keys()方法遍历所有键
keys()方法返回一个包含字典所有键的迭代器,可以用于遍历所有键。
for key in mydict.keys():
print(key)
输出: 浪潮信息
紫光股份
光迅科技
中科曙光
也可以直接使用key in mydict,来直接取到的键值,速度要快。
for key in mydict:
print(key)
4、使用values()方法遍历所有值
values()方法返回一个包含字典所有值的迭代器,可以用于遍历所有值。
person = {"name": "John", "age": 25, "city": "New York"}
for value in mydict.values():
print(value)
输出: 17.4
28.6
7.56
14.55
5、使用items()方法遍历所有键值对
items()方法返回一个包含字典所有键值对的迭代器,可以用于遍历所有键值对。
person = {"name": "John", "age": 25, "city": "New York"}
for key, value in mydict.items():
print(key, value)
输出:浪潮信息 17.4
紫光股份 28.6
光迅科技 7.56
中科曙光 14.55
修改字典
在Python中,可以通过以下方式修改字典中的值:
1、通过键直接赋值修改值:
mydict["浪潮信息"] = "test1"
print(mydict) # 输出:
{'浪潮信息': 'test1', '紫光股份': 28.6, '光迅科技': 7.56, '中科曙光': 14.55}
修改值时,其属性也会随值修改。
2、使用update()方法批量修改键值对
update()方法接受一个字典作为参数,用于同时修改多个键值对。可以是另一个字典对象或任何键值对迭代器。
print(mydict)
mydict.update({"浪潮信息": "修改测试", "紫光股份": 1000,"闻泰科技":500.73})
print(mydict)
输出:
{'浪潮信息': '修改测试', '紫光股份': 1000, '光迅科技': 7.56, '中科曙光': 14.55, '闻泰科技': 500.73}
{'浪潮信息': '修改测试', '紫光股份': 1000, '光迅科技': 7.56, '中科曙光': 14.55, '闻泰科技': 500.73}
从结果可以知道,update函数,根据键值直接修改对应的值,如果又不存在的键值,则直接在后面新增加字典的键值。
3、使用setdefault()方法修改值或添加新键值对。
setdefault()方法接受两个参数,第一个参数为要设置的键,第二个参数为默认值。如果键存在,则返回对应的值;如果键不存在,则设置该键的值为默认值,并返回默认值。
print(mydict)
print(mydict.setdefault("color", "Red"))
print(mydict)
输出:
{'浪潮信息': '修改测试', '紫光股份': 1000, '光迅科技': 7.56, '中科曙光': 14.55, '闻泰科技': 500.73}
Red
{'浪潮信息': '修改测试', '紫光股份': 1000, '光迅科技': 7.56, '中科曙光': 14.55, '闻泰科技': 500.73, 'color': 'Red'}
print(mydict)
print(mydict.setdefault("浪潮信息", "test setdefault"))
print(mydict)
输出:
{'浪潮信息': '修改测试', '紫光股份': 1000, '光迅科技': 7.56, '中科曙光': 14.55, '闻泰科技': 500.73, 'color': 'Red'}
修改测试
{'浪潮信息': '修改测试', '紫光股份': 1000, '光迅科技': 7.56, '中科曙光': 14.55, '闻泰科技': 500.73, 'color': 'Red'}
删除字典
1、使用del语句删除字典或字典中的键值对
使用del语句后跟字典名和要删除的键,可以删除字典中的键值对。如果使用del语句后跟字典名,则会删除整个字典。
print(mydict)
del mydict['color']
print(mydict)
输出:
{'浪潮信息': '修改测试', '紫光股份': 1000, '光迅科技': 7.56, '中科曙光': 14.55, '闻泰科技': 500.73, 'color': 'Red'}
{'浪潮信息': '修改测试', '紫光股份': 1000, '光迅科技': 7.56, '中科曙光': 14.55, '闻泰科技': 500.73}
del mydict
print(mydict) # 删除整个字典,删除后,再输出提示不存在。
2、使用pop()方法删除指定键的键值对并返回其值
pop()方法接受一个键作为参数,用于删除字典中指定键的键值对,并返回该键对应的值。如果键不存在,则返回 default 指定的值;如果没有指定 default (且键不存在),则引发 KeyError。
mydict = dict(浪潮信息=17.4, 紫光股份= 28.6, 光迅科技=7.56,中科曙光=14.55)
print(mydict)
print(mydict.pop('浪潮信息'))
print(mydict)
输出:
{'浪潮信息': 17.4, '紫光股份': 28.6, '光迅科技': 7.56, '中科曙光': 14.55}
17.4
{'紫光股份': 28.6, '光迅科技': 7.56, '中科曙光': 14.55}
3、使用clear()方法清空字典中的所有键值对
clear()方法用于移除字典中的所有元素,使字典变为空字典。
用于字典的方法print(mydict)
mydict.clear() # 清空字典
print(mydict) # 输出: {}
输出:
{'紫光股份': 28.6, '光迅科技': 7.56, '中科曙光': 14.55}
{}