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

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

时间:2024-03-17 12:29:05浏览次数:32  
标签:python 光迅 数据类型 7.56 --- 键值 print mydict 字典

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

{}

用于字典的方法

标签:python,光迅,数据类型,7.56,---,键值,print,mydict,字典
From: https://blog.csdn.net/m0_59917021/article/details/136641885

相关文章

  • 数据结构(二)双链表---以题为例
    实现一个双链表,双链表初始为空,支持 5 种操作:在最左侧插入一个数;在最右侧插入一个数;将第 k 个插入的数删除;在第 k 个插入的数左侧插入一个数;在第 k 个插入的数右侧插入一个数现在要对该链表进行 M 次操作,进行完所有操作后,从左到右输出整个链表。注意:题目中第 ......
  • 本地部署 Langchain-Chatchat & ChatGLM
     一、模型&环境介绍#1.ChatGLM#github地址:https://github.com/THUDM模型地址:https://huggingface.co/THUDM2.m3e#模型地址:https://huggingface.co/moka-ai/m3e-base/3.text2vec#模型地址:https://huggingface.co/GanymedeNil/text2vec-large-chinese/4.Lang......
  • 基于减法平均算法改进的随机森林分类算法 - 附代码
    基于减法平均算法改进的随机森林分类算法-附代码文章目录基于减法平均算法改进的随机森林分类算法-附代码1.数据集2.RF模型3.基于减法平均算法优化的RF4.测试结果5.Matlab代码摘要:为了提高随机森林数据的分类预测准确率,对随机森林中的树木个数和最小叶子点数参......
  • 基于Django旅游景区景点订票系统设计与实现(Pycharm+Python+Mysql)
     博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书、P......
  • Arthas - Can not read arthas version from: https://arthas.aliyun.com/api/latest_
    问题描述[ERROR]Cannotreadarthasversionfrom: https://arthas.aliyun.com/api/latest_version[ERROR]CannotfindArthasunderlocal:/root/.arthas/libandremoterepomirror:aliyun[ERROR]Unabletodownloadarthasfromremoteserver,pleasedownload......
  • LeetCode精选101刷题必备(C++)-附详细分类及解体说明
    分享一本leetcode刷题必备,互联网就业必备的免费书,非常好,值得推荐。感谢作者高畅无私整理和免费分享。本书介绍    本书分为算法和数据结构两大部分,又细分了十五个章节,详细讲解了刷LeetCode时常用的技巧。我把题目精简到了101道,一是呼应了本书的标题,二是不想让读......
  • 沃伦·巴菲特2023股东书(2024.2.24)-0-查理·芒格——伯克希尔·哈撒韦公司的建筑师
    2023letterhttps://www.berkshirehathaway.com/letters/2023ltr.pdf查理·芒格——伯克希尔·哈撒韦公司的建筑师查理·芒格于11月28日去世,距离他100岁生日仅33天。虽然在奥马哈出生和长大,但他一生中80%的时间都在其他地方定居。因此,直到1959年他35岁时,我才第一次......
  • 探索设计模式的魅力:探索发布-订阅模式的深度奥秘-实现高效、解耦的系统通信
    ​......
  • opencv读取视频采集卡帧-调整分辨率
    VideoCapturecapture;capture.open(0,CAP_DSHOW); capture.set(CAP_PROP_FRAME_WIDTH,1920); capture.set(CAP_PROP_FRAME_HEIGHT,1080); MatmatFrame; capture.read(matFrame); capture.release();imshow("ShowFrame",matFrame);1-......
  • AtCoder-abc345_f题解
    题意简述给定一个无向图。你要在其中选出一些边,使得选出的边所构成的图中,度数为奇数的点有\(K\)个。如果可以,输出选了哪些边,否则输出-1。思路首先在选一条边时,边两端点度数的奇偶性一定都会改变,即要么都变为奇数,要么两个点的奇偶性交换过来,要么都变为偶数。这三种情况时满足......