Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pythonic实践之获取dict中的元素值

pythonic实践之获取dict中的元素值

作者头像
有福
发布于 2018-08-28 06:45:11
发布于 2018-08-28 06:45:11
3.5K00
代码可运行
举报
文章被收录于专栏:极客生活极客生活
运行总次数:0
代码可运行

假定有一个dict如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
d = {
    'x': 1,
    'y': 2
}

正常情况下如果要获取某个key的值直接通过d[key]就可以获取。

但是大部分情况下,在真实的环境中,这个key有可能不存在。 如果使用下标的方法,那么需要捕捉KeyError错误或者先用if判断key是否存在。这样代码写起来非常的ugly。

这种情况下使用d.get(key)方法是最好的办法,尤其是如果不存在的时候我们需要一个默认值的时候。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# ugly code1
try:
    v = d['z']
except KeyError as e:
    v = 'vvv'

# ugly code2
if 'z' in d.keys():
    v = d['z']
else:
    v = 'vvv'

# pythonic code
v = d.get('z', 'vvv')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.03.02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python中dict详解
#字典的添加、删除、修改操作 dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o" : "orange"} dict["w"] = "watermelon" del(dict["a"]) dict["g"] = "grapefruit" print dict.pop("b") print dict dict.clear() print dict #字典的遍历 dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o" : "orange"} for k in dict:     print "dict[%s] =" % k,dict[k] #字典items()的使用 dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"} #每个元素是一个key和value组成的元组,以列表的方式输出 print dict.items() #调用items()实现字典的遍历 dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o" : "orange"} for (k, v) in dict.items():     print "dict[%s] =" % k, v #调用iteritems()实现字典的遍历 dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"} print dict.iteritems() for k, v in dict.iteritems():     print "dict[%s] =" % k, v for (k, v) in zip(dict.iterkeys(), dict.itervalues()):     print "dict[%s] =" % k, v #使用列表、字典作为字典的值 dict = {"a" : ("apple",), "bo" : {"b" : "banana", "o" : "orange"}, "g" : ["grape","grapefruit"]} print dict["a"] print dict["a"][0] print dict["bo"] print dict["bo"]["o"] print dict["g"] print dict["g"][1] dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"} #输出key的列表 print dict.keys() #输出value的列表 print dict.values() #每个元素是一个key和value组成的元组,以列表的方式输出 print dict.items() dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"} it = dict.iteritems() print it #字典中元素的获取方法 dict = {"a" : "apple", "b" : "banana", "c" : "grape", "d" : "orange"} print dict print dict.get("c", "apple")          print dict.get("e", "apple") #get()的等价语句 D = {"key1" : "value1", "key2" : "value2"} if "key1" in D:     print D["key1"] else:     print "None" #字典的更新 dict = {"a" : "apple", "b" : "banana"} print dict dict2 = {"c" : "grape", "d" : "orange"} dict.update(dict2) print dict #udpate()的等价语句 D = {"key1" : "value1", "key2" : "value2"} E = {"key3" : "value3", "key4" : "value4"} for k in E:     D[k] = E[k] print D #字典E中含有字典D中的key D = {"key1" : "value1", "key2" : "value2"} E = {"key2" : "value3", "key4" : "value4"} for k in E:     D[k] = E[k]
bear_fish
2018/09/20
9240
python基础—dict
d = dict(((1,‘a’),(2,‘b’))) d {1: ‘a’, 2: ‘b’}
dogfei
2020/07/31
5690
【Python】11、python内置数
dict.keys()、dict.value()、dict.items()返回的都类似生成器;它并不会复制一份内存
py3study
2020/01/15
1.3K0
Python基本数据类型-list-tuple-dict-set
输出结果:0 1 2 3 4 5 6 7 [0, 1, 3, 4, 5, 6, 7]
职场亮哥
2020/10/10
9650
Python基本数据类型-list-tuple-dict-set
抛弃dict[key]的方式访问Python字典的值
如果key不存在,dkey会抛出一个KeyError类型的异常,这将导致python程序崩溃,这是非常令人烦恼的事情。
AIFEx
2023/10/04
5960
抛弃dict[key]的方式访问Python字典的值
python 内置数据结构list、set、dict、tuple(三)
关于元组的函数 以下看代码 以下函数,对list基本适用 # len:获取元组的长度 t = (1,2,3,4,5) len(t) 5 # max,min:最大最小值 print(max(t)) print(min(t)) 5 1 # tuple:转化或创建元组 l = (1,2,3,4,5) t = tuple(l) print(t) t = tuple() print(t) (1, 2, 3, 4, 5) () 元组的函数 基本跟list通用 # count:计算指定数据出现的次数 t = (2,1,
ruochen
2021/02/25
9170
python 内置数据结构list、set、dict、tuple(三)
变量类型-Dict
教程: 一:字典的创建     1:字典的介绍------>d = {key1:value1, key2:values2}     (1)dictionary(字典) 是 Python 中最有用的数据类型。字典是无序的对象集合     (2)字典当中的元素是通过键来存取的,而不是通过偏移存取。     (3)字典是一种映射类型,它是一个无序的键(key) : 值(value)对集合。     (3)和字符串一样,list可以被索引和切片     (4)键(key)必须使用不可变类型。必须是唯一的     此处高能:不可变类型-----数字,字符串,元组,     2:字典的创建     (1)使用花括号         dict={key1:value1, key2:values2}         或者d = dict{},再添加相应的元素 !     (2)使用内联函数dict()         d = dict() 二:字典的索引     根据key即键值可以直接访问字典中的元素     使用get函数     如果用没有的键值访问字典,会出现什么情况呢!? 三:字典的修改     对列表中的数据项进行修改或者更新     d[key]= value     d1.update(d2) 四:字典的删除     del d['key']    删除键值     d.clear()    清空字典     del d        删除字典 五:字典内置函数     len(dict)----键的总数     d.keys()-------输出所有的键     d.values()-----输出所有的值     d.get(key)-----得到键对饮的值     d1.update(d2)--把d2的键和值更新到d1中     d.pop(key)-----删除key对应的元素 CODE: # -----------------------------------------------------------------------------------------------------# # 字典的创建方法一 # -----------------------------------------------------------------------------------------------------# my_dict1 = {'Name': 'faith', 'age': '100', 'grade': '80', 'hobby': 'basketball'} print('my_Dict1', my_dict1) my_dict2 = {}       # 注意这里的报错??? my_dict2['one'] = "this is the first value!" my_dict2[2] = "this is the second value!" my_dict2['3'] = "python" print('my_dict2', my_dict2) # -----------------------------------------------------------------------------------------------------# # 字典的创建方法二---------解决上面的问题 # -----------------------------------------------------------------------------------------------------# my_dict3 = dict() # my_dict3 = dict(name='a', old=33) my_dict3.update({"first": 'funny', "middle": 2, "last": 'dag'}) # -----------------------------------------------------------------------------------------------------# # 字典的索引 # -----------------------------------------------------------------------------------------------------# # 获取元素的值方法一 print('方法一获取元素的值:', my_dict3["first"]) # 获取元素的值方法二 my_value = my_dict3.get('first')  # 得到键对应的值 print('方法二获取元素的值:', my
py3study
2020/01/19
9880
Python入门教程笔记(四)元组(tuple)及字典(dict)
元组(tuple)和list一样,也是一个有序容器,在元组中,同样可以包含0个或者多个元素,并且也支持索引访问、切片等操作。
Lemon黄
2020/10/30
1.4K0
Python入门教程笔记(四)元组(tuple)及字典(dict)
python dict
>>> phonebook = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
py3study
2020/01/09
4710
python3之dict字典
## d.setdefault( x, [ , y ] )  返回字典 d 中键 x 对应的值,若键 x 不存在,则返回y, 并将 x : y 作为键值对添加到字典中,y 的默认值为 None
py3study
2020/01/03
6750
如何写出优雅又地道的Python代码?
译序 如果说优雅也有缺点的话,那就是你需要艰巨的工作才能得到它,需要良好的教育才能欣赏它。 —— Edsger Wybe Dijkstra 在Python社区文化的浇灌下,演化出了一种独特的代码风格,去指导如何正确地使用Python,这就是常说的pythonic。一般说地道(idiomatic)的python代码,就是指这份代码很pythonic。Python的语法和标准库设计,处处契合着pythonic的思想。而且Python社区十分注重编码风格一的一致性,他们极力推行和处处实践着pythonic。所
小小科
2018/05/03
1.2K0
让你的 Python 代码优雅又地道
如果说优雅也有缺点的话,那就是你需要艰巨的工作才能得到它,需要良好的教育才能欣赏它。
小小科
2019/08/15
8690
python的元祖,集合,字典的常见函数
# 关于元祖的函数 - 以下代码 - 以下函数,对 list 基本适用 关于元祖的函数¶ 以下代码 In [2]: # len :获取元祖的长度 t = (1,2,3,4,5,6) len(t)
py3study
2020/01/19
1.6K0
让你的 Python 代码优雅又地道
在Python社区文化的浇灌下,演化出了一种独特的代码风格,去指导如何正确地使用Python,这就是常说的pythonic。一般说地道(idiomatic)的python代码,就是指这份代码很pythonic。Python的语法和标准库设计,处处契合着pythonic的思想。而且Python社区十分注重编码风格一的一致性,他们极力推行和处处实践着pythonic。所以经常能看到基于某份代码P vs NP (pythonic vs non-pythonic)的讨论。pythonic的代码简练,明确,优雅,
顶级程序员
2018/04/26
2.2K0
Python快速学习第三天
第三天: 字典 什么是字典? 字典是Python语言中唯一的映射类型。 映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。 字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。 字典类型与序列类型的区别: 1.存取和访问数据的方式不同。 2.序列类型只用数字类型的键(从序列的开始按数值顺序索引); 3.映射类型可以用其他对象类型作键(如:数字、字符串、元祖,一般用字符串作键),和序列类型的键不同,映射类
汤高
2018/01/11
1.1K0
Python快速学习第三天
python学习_18
字典 字典是无序的 字典的key只能是不可变对象,不能是list dict 创建字典 创建空字典,并赋值
py3study
2020/01/15
4580
我写的 Python 代码,同事都说好
程序员的追求就是不写代码,早日财务自由。不对,一不小心把实话说出来了,应该是将代码写得简洁,优雅。
AlwaysBeta
2022/03/23
8840
[零基础学Python]dict()的
dict的很多方法跟list有类似的地方,下面一一道来,并且会跟list做一个对比
py3study
2020/01/03
5430
Python数据结构——字典
很多时候,数据对应的元素之间的顺序是无关紧要的,因为各元素都具有特别的意义,例如存储一些朋友的手机号码,此时用序列来存储数据并不是一个好的选择,Python提供了一个很好的解决方案--使用字典数据类型。 在Python中,字典是属于映射类型的数据结构。字典包含以任意类型的数据结构作为元素的集合,同时各元素都具有与之对应且唯一的键,字典主要通过键来访问对应的元素。字典与列表、元组有所不同,后两者使用索引来对应元素,而字典的元素都拥有各自的键,每个键值对都可以看成是一个映射对应关系。此外,元素在字典中没有严格的顺序关系。由于字典是可变的,所以可以对字典对象进行元素的增删改查等基本操作。
Francek Chen
2025/01/22
4700
Python数据结构——字典
Python3 与 C# 基础语法对比(List、Tuple、Dict、Set专栏-新排版)
在线预览:http://github.lesschina.com/python/base/pop/3.listtupledict_set.html
逸鹏
2018/07/23
3.4K0
Python3 与 C# 基础语法对比(List、Tuple、Dict、Set专栏-新排版)
相关推荐
Python中dict详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验