字典

特点:
使用逗号分隔的key:value形式;
使用大括号括起来;
key-value的键值对中,value部分可以是任意类型;
列表、字典不能做为字典的key;
字典是无序的,哪个key-value作为第一个非固定;

#因为字典中的元素是无序的,所以需要取字典的值的时候就得用key

info={"k1":18,"k2":100,2:"abc"}
v=info["k1"]
print(v)
返回结果:
18 info={"k1":18,"k2":100,2:"abc"}
v=info[2]
print(v)
返回结果:
abc

#复杂字典的取值

info={"k1":19,2:True,"k3":[11,22,33,{"kk1":"vv1","kk2":"vv2","kk3":(11,22,)}]}
v=info['k3'][3]["kk1"]
print(v)
返回结果:
vv1 info={"k1":19,2:True,"k3":[11,22,33,{"kk1":"vv1","kk2":"vv2","kk3":(11,22,)}]}
v=info["k3"][3]["kk3"][1]
print(v)
返回结果:
22

#字典的删除

info={"k1":19,2:True,"k3":[11,22,33,{"kk1":"vv1","kk2":"vv2","kk3":(11,22,)}]}
del info["k1"]
print(info)
返回结果:
{'k3': [11, 22, 33, {'kk3': (11, 22), 'kk1': 'vv1', 'kk2': 'vv2'}], 2: True} info={"k1":19,2:True,"k3":[11,22,33,{"kk1":"vv1","kk2":"vv2","kk3":(11,22,)}]}
del info["k3"][3]["kk1"]
print(info)
返回结果:
{2: True, 'k3': [11, 22, 33, {'kk2': 'vv2', 'kk3': (11, 22)}], 'k1': 19}

#对字典做for循环的时候,默认循环它的key

info={"k1":10,2:True,"k3":20,"k4":"abc"}
for item in info:
print(item)
返回结果:
k1
2
k3
k4

注意点:
#如果字典中有相同的key名称,则只保留一个而且只保留最后一个

info={"k1":123,"k2":222,"k1":999}
print(info)
返回结果:
{'k1': 999, 'k2': 222}

#True为key与1为key时的情况
#同样,只保留最后一个

info={1:123,"k1":"abc",True:999}
print(info)
返回结果:
{1: 999, 'k1': 'abc'} info={True:"sss","k1":"abc",1:123,"k2":777}
print(info)
返回结果: #只保留最后一个,如果key的值为1则转换为True
{True: 123, 'k2': 777, 'k1': 'abc'}

#上面把True转换为1的情况是当有个1为key的情况,如果单独只有True作为key,则不转换

info={"k1":"abc",True:"sss","k2":777}
print(info)
返回结果:
{True: 'sss', 'k2': 777, 'k1': 'abc'}

#同样的道理,当False作为key的时候,也一样

info={0:"abc",True:"sss","k2":777,False:"KKK"}
print(info)
返回结果:
{0: 'KKK', True: 'sss', 'k2': 777} info={2:"abc",True:"sss","k2":777,False:"KKK"}
print(info)
返回结果:
{False: 'KKK', True: 'sss', 2: 'abc', 'k2': 777}

#######字典的方法#######
1.clear()方法:移除字典中的所有元素

2.copy()方法:字典浅拷贝

3.fromkeys()方法:根据序列创建字典,并指定统一的值
第1参数传入一个序列,把序列的每一个元素当作key来生成一个字典,
而字典的value就是第2个参数的值
格式:
dict.fromkeys(<参数1>[,<参数2>])
静态方法,调用时使用:
  dict.fromkeys()

举例:只传入一个参数,生成一个字典,没有value
v=dict.fromkeys(["k1",123,""])
print(v)
返回结果:
{123: None, '': None, 'k1': None} v=dict.fromkeys(["k1","k2",""],123)
print(v)
返回结果:
{'': 123, 'k1': 123, 'k2': 123}

4.get()方法:取得字典的值,比使用索引的方式更方法、灵活
格式:
    get(<key>[,<参数2>])
使用过程:给定key,则向字典中取得key对应的value
如果给定的key在字典并不存在,则默认返回None
如果给定的key在字典并不存在,同时设置了参数2,则返回参数2

举例:正常情况取值
dic={"k1":"v1","k2":123,"k3":"UUU"}
v=dic.get("k1")
print(v)
返回结果:
v1 #给定一个并不存在的key
dic={"k1":"v1","k2":123,"k3":"UUU"}
v=dic.get("k111")
print(v)
返回结果:
None #给定一个不存在的key,返回自定义的消息
dic={"k1":"v1","k2":123,"k3":"UUU"}
v=dic.get("k111","the key is invalid")
print(v)
返回结果:
the key is invalid

5.pop()方法:移除字典中指定key的value,同时可以返回删除的值,如果指定的key不存在则可以设置返回值
格式:
    D.pop(<key>[,value])

举例:删除key对应的value,并且返回删除的value
dic={"k1":"v1","k2":123,"k3":"UUU"}
v=dic.pop("k1")
print(dic,v)
返回结果:
{'k3': 'UUU', 'k2': 123} v1 #删除key对应的value,如果key不存在,则自定义返回值
dic={"k1":"v1","k2":123,"k3":"UUU"}
v=dic.pop("k2222",404)
print(v)
返回结果:
404

6.popitem()方法:随机从字典中删除key-value键值对,这个key-value以元组的形式,可以传给变量
格式:
    D.popitem()

举例:
dic={"k1":"v1","k2":123,"k3":"UUU"}
v=dic.popitem()
print(v)
返回结果:
('k1', 'v1') #可以把删除的key-value传递给2个变量
dic={"k1":"v1","k2":123,"k3":"UUU"}
v1,v2=dic.popitem()
print(v1,v2)
返回结果:
k3 UUU

7.setdefault()方法:给字典设置key-value,仅当key并不存在时才有效,并且返回值是value
格式:
    D.setdefault(<key>,<value>)

举例:仅当key在字典中不存在时才生效
#key存在,无效果
dic={"k1":"v1","k2":123,"k3":"UUU"}
v=dic.setdefault("k1","hello")
print(dic,v)
返回结果:
{'k3': 'UUU', 'k1': 'v1', 'k2': 123} v1 #key不存在时,方法才有效
dic={"k1":"v1","k2":123,"k3":"UUU"}
v=dic.setdefault("k2222","hello")
print(dic,v)
返回结果:
{'k3': 'UUU', 'k2': 123, 'k2222': 'hello', 'k1': 'v1'} hello

8.update()方法:更新key对应的value值,如果key并不存在,则添加到字典中
格式1:
    D.update({key1:value1,key2:value2,...})
格式2:
    D.update(key1=value1,key2=value2,...)

举例:
dic={"k1":"v1","k2":123,"k3":"UUU"}
dic.update({"k1":999,"k333":"hello"})
print(dic)
返回结果:
{'k3': 'UUU', 'k333': 'hello', 'k2': 123, 'k1': 999} dic={"k1":"v1","k2":123,"k3":"UUU"}
dic.update(k1=999,k333="hello")
print(dic)
返回结果:
{'k3': 'UUU', 'k2': 123, 'k333': 'hello', 'k1': 999}

9.keys()方法:配合for循环得到字典的key
for item in info.keys():
  print(item)

10.values()方法:配合for循环得到字典的value

info={"k1":10,2:True,"k3":20,"k4":"abc"}
for item in info.values():
print(items)
返回结果:
10
abc
True
20

11items()方法:可以获取到key-value键值对

#注意,获取到的是key-value,那么循环的时候就需要2个变量接收

info={"k1":10,2:True,"k3":20,"k4":"abc"}
for k,v in info.items():
print(k,v)
返回结果:
2 True
k4 abc
k1 10
k3 20

 

python之字典及其方法---整理集的更多相关文章

  1. python之集合及其方法---整理集

    集合的定义: 由不同元素组成.一组无序排列的可hash值.集合中元素必须是不可变类型 集合的定义方式: 由大括号组成: 每个元素用逗号分隔: 元素书写不是key-value形式: 集合是由不同元素组成 ...

  2. python之列表及其方法---整理集

    列表类,类名是list 通过list类创建对象,使用中括号 列表特性: 使用中括号括起来 中间用逗号分隔每个元素 元素可以是数字.字符串.布尔值.列表 列表中可以嵌套列表 列表中每个元素的下标从0开始 ...

  3. python之元组及其方法---整理集

    元组: 区别:与列表类似,是对列表的二次加工:用小括号包括起来:元素不可修改:不可增加.删除 技巧:创建元组的时候,一般在最后一个元素后面加一个逗号:为了与方法区分:并且这个逗号不算元素例如: tu= ...

  4. python之字符串及其方法---整理集

    字符串方法 1.capitalize方法:字符串首字母大写 举例: test="alex" v=test.capitalize() print(v) 返回结果: Alex 2.ca ...

  5. Python中字典get方法的使用

    Python中字典get方法的使用 说起来,这个功能是否需要学习还真是有待于讨论.其实,知道了字典这种数据结构以后,通过最基本的Python功能也能够实现一个类似的功能.不过,既然内置了这个功能那么我 ...

  6. python:字典的方法

    1.查找字典中的key对应的值和key是否存在(get,has_key)dict.get(key, default = None) :返回字典中key对应的值,若key不存在字典中,则返回defaul ...

  7. Python中字典get方法的使用技巧

    get方法,用于获取字典中某个键值key 对应value的值,此方法可以接收两个参数,第一个参数传入key的值,第二个参数用于传入一个自定义返回值,如果查询的key在字典中存在,就会反回对应key在字 ...

  8. Python - dict 字典常见方法

    字典详解 https://www.cnblogs.com/poloyy/p/15083781.html get(key) 作用 指定键,获取对应值 两种传参 dict.get(key):键存在则返回对 ...

  9. 关于python访问字典的方法

    def stu( **kwargs): # 在函数体内对于kwargs的使用不用带星号 print("大家好,我为大家简单自我介绍以下:") print(type(kwargs)) ...

随机推荐

  1. [蓝桥杯]PREV-27.历届试题_蚂蚁感冒

    问题描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有1只蚂 ...

  2. iOS安全系列之一:HTTPS

    如何打造一个安全的App?这是每一个移动开发者必须面对的问题.在移动App开发领域,开发工程师对于安全方面的考虑普遍比较欠缺,而由于iOS平台的封闭性,遭遇到的安全问题相比于Android来说要少得多 ...

  3. [UE4]Spline使用注意事项

    一.如果在Character中使用Spline,则使用Add Spline Mesh Componet的时候,要注意设置Transform.Mobility为Movable 二.使用Predict P ...

  4. PTA币值转化

    include<stdio.h> include<math.h> int n,s=0; int main(void){ int i,j,k,p=1,flag=1; int f( ...

  5. python,运算符,基本数据类型

    a = 'py' in 'python' b = 'py' not in 'python' print(a)print(b) in :判断一个前面一个字符串中的字符是否完整的出现在后面的字符串中,如果 ...

  6. 样式初始化(copy)

    css样式初始化reset文件 pc端 移动端 公共样式 1.pc端 /* normalize.css */ html { line-height: 1.15; /* 1 */ -ms-text-si ...

  7. 进程、线程与GIL全局解释器锁详解

    进程与线程的关系: . 线程是最小的调度单位 . 进程是最小的管理单元 . 一个进程必须至少一个线程 . 没有线程,进程也就不复存在 线程特点: 线程的并发是利用cpu上下文的切换(是并发,不是并行) ...

  8. CentOS7 部署zabbix4.2

    zabbix我就不介绍了吧,但是可能又有些小白,我还是介绍一下吧,嘿嘿! 一:什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提 ...

  9. nginx mac

    ==> nginx Docroot is: /usr/local/var/www The default port has been set in /usr/local/etc/nginx/ng ...

  10. Python Queue(队列)

    Queue模块实现了多生产者.多消费者队列.当必须在多个线程之间安全地交换信息时,它在线程编程中特别有用,实现了所有必需的锁定语义. 一.该模块实现了三种类型的队列,它们的区别仅在于检索条目的顺序: ...