百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

经典|Python字典的11个方法超级详解

liuian 2025-02-19 12:55 11 浏览


Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。

print(dir(dict))
['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']


01 clear()

描述:清除字典中所有的元素,得到的是空的字典。 返回值None

语法:dict.append(object)

参数:object可以添加 列表,字典,元组,集合,字符串等。


dic = {"python3":123}
print(dic.clear())
None


02 copy()

描述:返回一个字典浅拷贝的副本

语法:dict.copy()

参数:

dict1 = {'Name': 'Xiaowuge', 'Age': 17};
 
dict2 = dict1.copy()
str(dict2)
"{'Name': 'Xiaowuge', 'Age': 17}"


03 fromkeys()

描述:创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。

语法:dict.fromkeys(seq[, value])

参数:

  • seq -- 字典键值列表。
  • value -- 可选参数, 设置键序列(seq)的值。
seq = ('Google', 'Baidu', 'Taobao')
dict.fromkeys(seq)
{'Google': None, 'Baidu': None, 'Taobao': None}

dict.fromkeys(seq, 1)
{'Google': 1, 'Baidu': 1, 'Taobao': 1}


04 get()

描述:返回指定键的值,如果值不在字典中返回default值

语法:dict.get(key, default=None)

参数:

  • key -- 字典中要查找的键。
  • default -- 如果指定键的值不存在时,返回该默认值。
dic = {"uiui":"ioio"}
dic.get('uiui')
'ioio'
print(dic.get("uiuiui","我是第二个参数,字典中不存在参数一中的键"))
'我是第二个参数,字典中不存在参数一中的键'


print(dic.get("uiuiui"))
None


05 items()

描述:列表返回可遍历的(键, 值) 元组数组。

语法:dict.items()

参数:

dict = {'name':'Alice','age':23,'address':'Hangzhou'}
dict.items()
dict_items([('name', 'Alice'), ('age', 23), ('address', 'Hangzhou')])

最终得到的是一个dict_items对象。这个对象也是一个可迭代对象,可以用iter方法将其转化为一个迭代器,其将字典的每一个键值对都转化成了元组

dic1 = iter(dict.items())
for i in dic1:
    print(i)
    print(type(i))

#同时进行引用循环
dict = {'name':'Alice','age':23,'address':'Hangzhou'}
for i,v in dict.items():
    print(i+':'+str(v))
name:Alice
age:23
address:Hangzhou 

06 keys()

描述:以列表返回一个字典所有的键。

语法:dict.keys()

参数:

dict = {'name':'Alice','age':23,'address':'Hangzhou'}

dict.keys()

dict_keys(['name', 'age', 'address'])

list(dict.keys())#转换成列表
['name', 'age', 'address


07 pop()

描述:顾名思义让字典中的某个键对应的项“离开”字典。

语法:pop(key[,default])

参数:

  • key: 要删除的键值
  • default: 如果没有 key,返回 default 值

接受两个参数,第一个参数为键,第二个参数为可选参数,如果字典中不存在第一个参数中的键,

则返回第二个参数。如果没有传入第二个参数,则抛出keyerror。

dict = {'name':'Alice','age':23,'address':'Hangzhou'}
dict.pop('age')
23
print(dict)
{'name': 'Alice', 'address': 'Hangzhou'} #age没了


08 popitem()

描述:删除字典中某一键值对,并以元组的形式返回这一键值对,返回并删除字典中的最后一对键和值。

语法:dict.popitem()

参数:

注意:pop 和 popitem 是字典中的删除操作。pop 是以字典的 “键” 为参数,删除指定的键 / 值对,pop 中的参数不能省略且如果删除字典中没有的键 / 值对,会报错。

dict = {'name':'Alice','age':23,'address':'Hangzhou'}
dict.popitem()
('address', 'Hangzhou')
print(dict)
{'name': 'Alice', 'age': 23}


09 setdefault()

描述:如果键不存在于字典中,将会添加键并将值设为默认值。Python 字典 setdefault() 函数和 get()方法 类似

语法:dict.setdefault(key, default=None)

参数:

  • key -- 查找的键值。
  • default -- 键不存在时,设置的默认键值。
dict = {'name':'Alice','age':23,'address':'Hangzhou'}
dict.setdefault('name')
'Alice'
print(dict)
{'name': 'Alice', 'age': 23, 'address': 'Hangzhou'}

#身高这个键,看看有没有,没有就加进去
dict.setdefault('high',178)
178
dict
{'name': 'Alice', 'age': 23, 'address': 'Hangzhou', 'high': 17


10 update()

描述:更新字典的键值对,将参数中字典中的键值对更新到字典中,此方法无返回值

语法:dict.update(dict)

参数:dict-- 添加到指定字典dict里的字典。

dict = {'name':'Alice','age':23,'address':'Hangzhou'}
dict.update({'age':80})
print(dict)
{'name': 'Alice', 'age': 80, 'address': 'Hangzhou'}


11 values()

描述:返回字典中所有键对应的值

语法:dict.values()

参数:

dict = {'name':'Alice','age':23,'address':'Hangzhou'}
dict.values()
dict_values(['Alice', 23, 'Hangzhou'])


dict = {'nick':'帅气小王子','item':'长袖短款','price':29.99,'prov':'杭州'}
dict.values()
dict_values(['帅气小王子', '长袖短款', 29.99, '杭州'])

相关推荐

GANs为何引爆机器学习?这篇基于TensorFlow的实例教程为你解惑!

「机器人圈导览」:生成对抗网络无疑是机器学习领域近三年来最火爆的研究领域,相关论文层出不求,各种领域的应用层出不穷。那么,GAN到底如何实践?本文编译自Medium,该文作者以一朵玫瑰花为例,详细阐...

高丽大学等机构联合发布StarGAN:可自定义表情和面部特征

原文来源:arXiv、GitHub作者:YunjeyChoi、MinjeChoi、MunyoungKim、Jung-WooHa、SungKim、JaegulChoo「雷克世界」编译:嗯~...

TensorFlow和PyTorch相继发布最新版,有何变化

原文来源:GitHub「机器人圈」编译:嗯~阿童木呀、多啦A亮Tensorflow主要特征和改进在Tensorflow库中添加封装评估量。所添加的评估量列表如下:1.深度神经网络分类器(DNNCl...

「2022 年」崔庆才 Python3 爬虫教程 - 深度学习识别滑动验证码缺口

上一节我们使用OpenCV识别了图形验证码躯壳欧。这时候就有朋友可能会说了,现在深度学习不是对图像识别很准吗?那深度学习可以用在识别滑动验证码缺口位置吗?当然也是可以的,本节我们就来了解下使用深度...

20K star!搞定 LLM 微调的开源利器

LLM(大语言模型)微调一直都是老大难问题,不仅因为微调需要大量的计算资源,而且微调的方法也很多,要去尝试每种方法的效果,需要安装大量的第三方库和依赖,甚至要接入一些框架,可能在还没开始微调就已经因为...

大模型DeepSeek本地部署后如何进行自定义调整?

1.理解模型架构a)查看深度求索官方文档或提供的源代码文件,了解模型的结构、输入输出格式以及支持的功能。模型是否为预训练权重?如果是,可以在预训练的基础上进行微调(Fine-tuning)。是否需要...

因配置不当,约5000个AI模型与数据集在公网暴露

除了可访问机器学习模型外,暴露的数据还可能包括训练数据集、超参数,甚至是用于构建模型的原始数据。前情回顾·人工智能安全动态向ChatGPT植入恶意“长期记忆”,持续窃取用户输入数据多模态大语言模型的致...

基于pytorch的深度学习人员重识别

基于pytorch的深度学习人员重识别Torchreid是一个库。基于pytorch的深度学习人员重识别。特点:支持多GPU训练支持图像的人员重识别与视频的人员重识别端到端的训练与评估简单的re...

DeepSeek本地部署:轻松训练你的AI模型

引言:为什么选择本地部署?在AI技术飞速发展的今天,越来越多的企业和个人希望将AI技术应用于实际场景中。然而,对于一些对数据隐私和计算资源有特殊需求的用户来说,云端部署可能并不是最佳选择。此时,本地部...

谷歌今天又开源了,这次是Sketch-RNN

前不久,谷歌公布了一项最新技术,可以教机器画画。今天,谷歌开源了代码。在我们研究其代码之前,首先先按要求设置Magenta环境。(https://github.com/tensorflow/magen...

Tensorflow 使用预训练模型训练的完整流程

前面已经介绍了深度学习框架Tensorflow的图像的标注和训练数据的准备工作,本文介绍一下使用预训练模型完成训练并导出训练的模型。1.选择预训练模型1.1下载预训练模型首先需要在Tensorf...

30天大模型调优学习计划(30分钟训练大模型)

30天大模型调优学习计划,结合Unsloth和Lora进行大模型微调,掌握大模型基础知识和调优方法,熟练应用。第1周:基础入门目标:了解大模型基础并熟悉Unsloth等工具的基本使用。Day1:大模...

python爬取喜马拉雅音频,json参数解析

一.抓包分析json,获取加密方式1.抓包获取音频界面f12打开抓包工具,播放一个(非vip)视频,点击“媒体”单击打开可以复制URL,发现就是我们要的音频。复制“CKwRIJEEXn-cABa0Tg...

五、JSONPath使用(Python)(json数据python)

1.安装方法pipinstalljsonpath2.jsonpath与Xpath下面表格是jsonpath语法与Xpath的完整概述和比较。Xpathjsonpath概述/$根节点.@当前节点...

Python网络爬虫的时候json=就是让你少写个json.dumps()

大家好,我是皮皮。一、前言前几天在Python白银交流群【空翼】问了一个Python网络爬虫的问题,提问截图如下:登录请求地址是这个:二、实现过程这里【甯同学】给了一个提示,如下所示:估计很多小伙伴和...