zoukankan      html  css  js  c++  java
  • 基本数据类型 字典 dict

    今日内容
    一.字典 dict
    ======================================基本使用======================================
    1、用途:记录多个不同属性的值

    2、定义方式:在{}内用逗号分隔开多个元素,每一个元素都是key:value的形式,其中value可以是任意类型,
    而key必须是不可变的类型(通常应该是str类型)
    # dic={1:'aaa',1.3:'bbc',(1,2,3):'ccc','xxx':'ddd'} #dic=dict(...)
    # dic={'x':1,'x':2,'x':3}
    # print(dic)

    数据类型转换:dict
    li=(['name','egon'],('age',18),('gender','male'))

    dic={}
    for k,v in li: #k,v=('name','egon')
    dic[k]=v

    dic=dict(li)
    print(dic)

    dic=dict(x=1,y=2,z=3)
    print(dic)

    3、常用操作+内置的方法
    优先掌握的操作:
    1、按key存取值:可存可取
    dic={'name': 'egon', 'age': 18, 'gender': 'male'}
    print(dic['name'])
    print(id(dic))
    dic['name']='EGON'
    print(dic,id(dic))

    dic['height']=1.81 # 如果key不存在则新增一组key:value
    print(dic)

    2、长度len
    dic={'name': 'egon', 'age': 18, 'gender': 'male'}
    print(len(dic))

    3、成员运算in和not in
    dic={'name': 'egon', 'age': 18, 'gender': 'male'}
    print('name' in dic)


    4、删除
    dic={'name': 'egon', 'age': 18, 'gender': 'male'}
    del dic['name']
    print(dic)

    t=dic.popitem() # popitem 是随机删除,也有返回值
    print(t,type(t))

    v=dic.pop('name') # pop 可以指定删除,但是会有一个返回值
    print(v)

    5、键keys(),值values(),键值对items()
    dic={'name': 'egon', 'age': 18, 'gender': 'male'}
    在python2中体现出来的
    >>> dic={'name': 'egon', 'age': 18, 'gender': 'male'}
    >>> dic.keys()
    ['gender', 'age', 'name']
    >>> dic.values()
    ['male', 18, 'egon']
    >>> dic.items()
    [('gender', 'male'), ('age', 18), ('name', 'egon')]

    keys=dic.keys()
    vals=dic.values()
    items=dic.items()

    print(keys)
    print(vals)
    print(items)

    print(list(keys))
    print(list(vals))
    print(list(items))



    6、循环
    dic={'name': 'egon', 'age': 18, 'gender': 'male'}
    for k in dic.keys():
    print(k)

    for k in dic:
    print(k)

    for v in dic.values():
    print(v)

    for k,v in dic.items():
    print(k,v)

    7. get取值
    dic={'name': 'egon', 'age': 18, 'gender': 'male'}
    if 'xxx' in dic:
    print(dic['xxx'])
    else:
    print(None)

    v=dic.get('xxx')
    print(v)

    3.2 需要掌握的操作
    dic.fromkeys()
    li=['name','age','gender']

    dic={}
    for k in li:
    dic[k]=None
    print(dic)

    dic={}.fromkeys(li,None)
    print(dic)

    dic={'k1':1}.fromkeys(li,None)
    print(dic)


    dic={}.fromkeys('hello',)
    print(dic)


    keys=['name','age','gender']
    vals=['egon',18,'male']

    dic={}.fromkeys(keys,vals)
    print(dic)

    keys=['name','age','gender']
    vals=['egon',18,'male']

    dic={}
    for i in range(len(keys)):
    k=keys[i]
    v=vals[i]
    dic[k]=v

    print(dic)


    dic.update() 更新,原字典中没有的补上,原字典中有更新,把更新的换上
    old_dic={'name': 'egon', 'age': 18, 'gender': 'male'}
    new_dic={'x':1,'name':'EGON'}
    old_dic.update(new_dic)
    print(old_dic)

    v=dic.setdefault('height',1.81) # 字典中没有'height'这个键,则新增
    print(dic)
    print(v)

    v=dic.setdefault('name','EGON') # 字典中有'name'这个键,不修改字典
    print(dic)
    print(v)

    setdefault的原理分析:
    k='name'
    v='EGON'
    if k not in dic:
    dic[k]=v

    print(dic)




    ======================================该类型总结====================================
    存多个值

    无序

    可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)



  • 相关阅读:
    RabbitMq的死信队列和延迟队列
    Rabbitmq的过期时间
    技术干货 | 源码解析 Github 上 14.1k Star 的 RocketMQ
    深入分析 Flutter 渲染性能
    重磅发布 阿里云数据中台全新产品DataTrust聚焦企业数据安全保障
    DataWorks搬站方案:Airflow作业迁移至DataWorks
    DataWorks搬站方案:Azkaban作业迁移至DataWorks
    基于 Flutter 的 Web 渲染引擎「北海」正式开源!
    走完线上 BUG 定位最后一公里
    10种编程语言实现Y组合子
  • 原文地址:https://www.cnblogs.com/dengyanchuan/p/10222555.html
Copyright © 2011-2022 走看看