字典(dict)

基本结构:

d = {key1 : value1, key2 : value2 }
dict = {'K1': 1, 'K2': 2, 'K3': ''}
  • key : value称为字典的键值对。
  • 每个键 key和值value 之间用冒号 : 分割
  • 每个键值对(也就是字典的一个元素)之间用逗号 , 分割
  • 整个字典包括在花括号  { }  中
  • 字典是无序的(所以不存在切片)
  • 值(value)可以取任何数据类型,但键(key)必须是不可变的(列表和字典不能作为字典的key)
  • (键就相当于地址,首先得固定,而且不能重复,键一般是唯一的,如果重复最后的一个键值对会替换前面的)

字典的功能

先给一个很长的字典(手动捂脸),这不是为难人嘛(难的都明白了,简单的不在话下)

d = {'K1': 18, 2: True, 'K3':[11,[1,6],('a',88),22,33,{'KK1':'VV1','KK2':'VV2','KK3':'VV3'}],'K4':(11,22,33,44)}

以下操作的针对这个长长的字典 d 的哦

1.索引取值

#通过索引 键(key)来获取一级元素
v1 = d['K1']
#通过索引来获取‘VV1’
v2 = d['K3'][5]['KK1']
print(v1,v2) #执行结果
18 VV1

2.clear

  • D.clear() -> None. Remove all items from D.
v = d.clear()
print(v)
#执行结果:
None

3.copy

  • D.copy() -> a shallow copy of D
v = d.copy()
print(v)

4.del

#利用索引,通过del删除字典中的元素
del d['K1']
del d['K3'][1][1]
print(d)

5.for循环

#for循环返回键(key)
for item in d:
print(item)
#执行结果:
K1
2
K3
K4
#for循环返回值value
for item in d.values():
print(item)
#执行结果
18
True
[11, [1, 6], ('a', 88), 22, 33, {'KK1': 'VV1', 'KK2': 'VV2'}]
(11, 22, 33, 44)
#for循环同时返回键(key)和值(value)
for k,v in d.items():
print(k,v)
#执行结果
K1 18
2 True
K3 [11, [1, 6], ('a', 88), 22, 33, {'KK1': 'VV1', 'KK2': 'VV2'}]
K4 (11, 22, 33, 44)

6.fromkeys

  • 根据序列,创建字典,并指定统一的值
  • Create a new dictionary with keys from iterable and values set to value.
v = dict.fromkeys(['k1','k2','k3'],666)
print(v) #执行结果
{'k1': 666, 'k2': 666, 'k3': 666}

7.get

  • Return the value for key if key is in the dictionary, else default.
  • 根据key获取值,key不存在时,可以指定返回值(默认情况下返回None)
v1 = d.get('K1')
v2 = d.get('K2')
v3 = d.get('K2',666)
print(v1,v2,v3)
#执行结果:
18
None
666

8. pop

  • D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
  • If key is not found, d is returned if given, otherwise KeyError is raised
#删除指定的元素,并将删除的值返回
d = {'k1':'v1', 'k2':'v2'}
v = d.pop('k2')
print(v,d)
#执行结果
v2 {'k1': 'v1'}
#第二个参数设置的意义:当要删除的对象不存在时,将第二个参数返回
#当要删除的对象不存在时,而第二个参数未设置,则报错
d = {'k1':'v1', 'k2':'v2'}
v = d.pop('k3','不存在')
print(v,d) #执行结果
不存在 {'k1': 'v1', 'k2': 'v2'}

9.popitem

  • D.popitem() -> (k, v), remove and return some (key, value) pair as a 2-tuple
  • but raise KeyError if D is empty.
#删除字典中最后一个元素,并将删除的键和值返回
d = {'k1':'v1', 'k2':'v2'}
k,v = d.popitem()
print(d,k,v)
#执行结果:
{'k1': 'v1'}
k2
v2

10.setdefault

  • Insert key with a value of default if key is not in the dictionary.
  • Return the value for key if key is in the dictionary, else default.
#设置值,如果该键存在,则不设置,获取当前key对应的值
d = {'k1':'v1', 'k2':'v2'}
v = d.setdefault('k1')
print(v)
#执行结果:
v1
#设置值,如果该键不存在,则设置,获取设置的key对应的值
d = {'k1':'v1', 'k2':'v2'}
v = d.setdefault('k3',666)
print(v)
#执行结果:
666

11.update

更新方式一:

#更新值,按照字典的形式,将对应key的值更新
#如果无对应key,将该key和对应的值加入原字典
d = {'k1': 'v1', 'k2': 'v2'}
d.update({'k1': 'xhg', 'k2': 123, 'k3': 'v3'})
print(d)
#执行结果
{'k1': 'xhg', 'k2': 123, 'k3': 'v3'}

更新方式二:

#按照 键=值 得形式对原字典进行更新
d = {'k1': 'v1', 'k2': 'v2'}
d.update(k1 = 'xhg', k2 = 123, k3 = 'v3')
print(d)
#执行结果
{'k1': 'xhg', 'k2': 123, 'k3': 'v3'}

12.in

#判断键是否存在字典中
d = {'k1': 'v1', 'k2': 'v2'}
v = 'k1' in d
print(v)
#判断值是否存在在字典中
v = 'v1' in d.values()
print(v)

关于布尔值的补充

None    ''     ()      {}      []      0   ==>False
其余 ==>True

Python小白学习之路(七)—【字典】【字典的功能】【布尔值】的更多相关文章

  1. Python小白学习之路(二)—【Pycharm安装与配置】【创建项目】【运算符】【数据类型】

    写在前面: 第二天的学习,感觉比昨天学习相对轻松一些,但是对于我这个编程语言功底很弱的人来说,还是稍稍微有些.....哈尔滨的天气一天天冷了下来,还飘着小雨,不过还是挺有意境的.充实而又忙碌的生活,让 ...

  2. Python小白学习之路(十八)—【内置函数三】

    一.对象操作 help() 功能:返回目标对象的帮助信息 举例: print(help(input)) #执行结果 Help on built-in function input in module ...

  3. Python小白学习之路(十六)—【内置函数一】

    将68个内置函数按照其功能分为了10类,分别是: 数学运算(7个) abs()   divmod()  max()  min()  pow()  round()  sum() 类型转换(24个) bo ...

  4. Python小白学习之路(四)——第一次练习题

    写在前面: 今天下雪了呢!连着两天都没有更新学习记录. 我没有偷懒呢.做了一天的练习题,昨天学的内容还没总结完,太累了就回去睡觉了 连续一周早起,强大的内心也无法支撑我疲惫的身体 今天早起做了整理.加 ...

  5. Python小白学习之路(五)—【类和对象】【列表】【列表相关功能】

    类和对象 (简单的了解一下这个概念,初步有个印象,这个概念很重要,后面会着重讲) 类:具有相同属性和方法的对象的集合: 对象:万物皆对象: 概念很抽象(每当我看不到概念的时候,我就会通过举例来理解) ...

  6. Python小白学习之路(十)—【函数】【函数返回值】【函数参数】

    写在前面: 昨天早睡之后,感觉今天已经恢复了百分之八十的样子 又是活力满满的小伙郭 今日份鸡汤: 我始终相信,在这个世界上,一定有另一个自己,在做着我不敢做的事,在过着我想过的生活.-------宫崎 ...

  7. Python小白学习之路(九)—【字符串格式化】【百分号方式】【format方式】

    写在前面: 最近的事情好像有很多.李咏的离去,让我觉得很突然,仿佛印象中就是主持节目的他,看着他和哈文的爱情,很是感动.离去,没有什么抱怨,只是遗憾. 总会感慨,时光的流逝. 好像真的很快,转眼间,我 ...

  8. Python小白学习之路(二十四)—【装饰器】

    装饰器 一.装饰器的本质 装饰器的本质就是函数,功能就是为其他函数添加附加功能. 利用装饰器给其他函数添加附加功能时的原则: 1.不能修改被修饰函数的源代码        2.不能修改被修饰函数的调用 ...

  9. Python小白学习之路(二十一)—【迭代器】

    迭代器 1.迭代器协议 对象必须提供一个 next 方法,执行该方法要么返回迭代中的下一项,要么就引起一个Stoplteration异常,以终止迭代(只能往后走不能往前退) 2.可迭代对象 实现了迭代 ...

随机推荐

  1. 莫烦python课程里面的bug修复;课程爬虫小练习爬百度百科

    我今天弄了一下午修改这个代码,最后还是弄好了.原因是正则表达式的筛选不够准确,有时候是会带http:baidu这些东西的.所以需要一个正则表达式的断言,然后还有一点是如果his里面只有一个元素就不要再 ...

  2. VS快捷键以及Reshaper快捷键

    VS快捷键: Resharper 快捷键(此图是保存他人的[具体是谁忘记了]): 参考: http://msdn.microsoft.com/zh-cn/library/da5kh0wa.aspx

  3. crontab误删除

    命令如下: cat /var/log/cron* | grep -i "`which cron`" > ./all_temp cat ./all_temp | grep -v ...

  4. 2018.09.28 bzoj1563: [NOI2009]诗人小G(决策单调性优化dp)

    传送门 决策单调性优化dp板子题. 感觉队列的写法比栈好写. 所谓决策单调性优化就是每次状态转移的决策都是在向前单调递增的. 所以我们用一个记录三元组(l,r,id)(l,r,id)(l,r,id)的 ...

  5. T4系列文章之2:T4工具简介、调试以及T4运行原理(转)

    出处:http://www.cnblogs.com/damonlan/archive/2012/01/12/2320429.html 一.前言 经过第一篇,我想大家现在对T4有了基本的印象,应该对T4 ...

  6. 关于EmitMapper,映射配置

    public static T Snapshoot<T>(this XtraForm form, T obj) { var config = new DefaultMapConfig(); ...

  7. htoi的实现

    htoi的实现 /************************************************************************* > File Name: h ...

  8. 怎样使用word2013发布csdn博客

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  9. oracle中row_number() over()分析函数用法

    row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内 ...

  10. 2014年誓言:干掉网页设计程序——Dreamweaver!

    2014年誓言:干掉网页设计程序——Dreamweaver! 阅读:  评论:  作者:Rybby  日期:  来源:rybby.com 2014年,我写下誓言,用自己设计的在线网页设计工具“拉拉变” ...