python疑难杂症(9)---python的数据类型字典(dict)的创建、访问、修改、删除等方法汇总

在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}

{}

用于字典的方法

  • 35
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用Docker时,可能会遇到一些疑难杂症。其中,一些常见的问题及解决办法如下: 1. 运行docker version时报错"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"这个错误通常是由于Docker守护进程未启动引起的。可以通过运行以下命令来启动守护进程:`sudo systemctl start docker`(适用于基于systemd的Linux发行版)。如果您不是使用systemd,请根据您的操作系统和版本来启动Docker守护进程。 2. 使用yum安装Docker时报错"Cannot retrieve metalink for repository: epel. Please verify its path and try again."这个错误通常是由于epel源(Extra Packages for Enterprise Linux)未正确安装或配置引起的。您可以尝试以下解决办法: - 首先,确保您的系统与互联网连接正常。 - 检查您的操作系统和版本,并根据官方文档正确安装epel源。 - 如果您已经安装了epel源,但仍然遇到这个错误,请尝试更新epel源并再次运行安装命令。 这些是一些常见的Docker疑难杂症及其解决办法。当然,Docker的使用过程中可能还会遇到其他问题,您可以参考官方文档、社区论坛或搜索引擎来寻找更多解决办法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [docker 疑难杂症](https://blog.csdn.net/weixin_33805992/article/details/92266045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [docker常见疑难杂症](https://blog.csdn.net/weixin_45776707/article/details/103142818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值