zoukankan      html  css  js  c++  java
  • python之字典【dict】

    #Auther Bob
    #--*--conding:utf-8 --*--

    #创建一个字典dict
    dic1 = {'k1':'v1','k2':'v2'}
    dic2 = dict(k1='v1',k2='v2')
    print(type(dic1),type(dic2))
    # <class 'dict'> <class 'dict'>
    print(dic1)
    print(dic2)
    # {'k1': 'v1', 'k2': 'v2'}
    # {'k1': 'v1', 'k2': 'v2'}

    #clear,清空字典所有的元素
    dic1.clear()
    print(dic1)
    # {}

    #copy,这个copy也是浅拷贝
    dict3 = dic2.copy()
    print(dict3)

    # {'k1': 'v1', 'k2': 'v2'}

    # fromkeys,可以生成一个新的dict
    new_dict = dict.fromkeys(['k1','k2','k3'],'v')
    print(new_dict)

    # {'k1': 'v', 'k2': 'v', 'k3': 'v'}


    #get,获取dict中的元素,如果对应的key存在,则返回该key对应的value值,如果不存在
    #则返回none
    test_dict = {'name':'Bob','age':12,'job':'it'}
    result = test_dict.get('name')
    print(result)
    # Bob
    result = test_dict.get('home')
    print(result)
    # None


    # items,返回dict中的key和value的值

    result = test_dict.items()
    print(result)
    # dict_items([('name', 'Bob'), ('age', 12), ('job', 'it')])

    # keys,返回dict的key
    result = test_dict.keys()
    print(result)
    # dict_keys(['name', 'age', 'job'])

    for k in test_dict.keys():
    print(k)
    # name
    # age
    # job
    # values,返回dict的value的值
    result = test_dict.values()
    print(result)
    # dict_values(['Bob', 12, 'it'])
    for v in test_dict.values():
    print(v)
    # Bob
    # 12
    # it

    # pop,删除某个dict的key,会把删除key的value返回,我们可以捕获到
    result = test_dict.pop('job')
    print(test_dict)
    # {'age': 12, 'job': 'it'}
    print(result)
    # it


    # popitem,会随机删除一个key
    test_dict = {'name':'Bob','age':12,'job':'it'}
    test_dict.popitem()
    print(test_dict)

    # {'name': 'Bob', 'age': 12}

    #setdefault,给字典设置默认的key的value的值为none,如果key的value的值存在,则不会设置
    #如果没有对应的key值,则会设置一个默认值none
    test_dict.setdefault('name')
    print(test_dict)
    # {'name': 'Bob', 'age': 12}
    test_dict.setdefault('home')
    print(test_dict)
    # {'name': 'Bob', 'age': 12, 'home': None}

    setdefault的作用

    有一个字典已经有多个元素,

    test_dict.setdefault("k3","v3")

    这个的意思 如果字典中有k3这个k值,且有值,则这段代码不会有任何作用,但是如果字典中没有k3这个k值,则会增加一个k为k3的值,且k3的values的值为v3


    # update,更新字典
    test_dict = {'name':'Bob','age':12,'job':'it'}
    dic1 = {'k1':'v1','k2':'v2'}
    test_dict.update(dic1)
    print(test_dict)
    # {'name': 'Bob', 'age': 12, 'job': 'it', 'k1': 'v1', 'k2': 'v2'}
    dic1.update({'k3':'v3'})
    print(dic1)

    # {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}

    #来一个练习题,有如下集合,[11,22,33,44,55,66,77,88,99,111,100,45,],将小于100的和大于等于
    #100的分别放到一个dict中{'k1':大于等于100,'ke':小于100}
    list = [11,22,33,44,55,66,77,88,99,111,100,45,]
    list1 = []
    list2 = []
    for i in list:
    if i < 100:
    list1.append(i)
    else:
    list2.append(i)
    test_dict = {}
    test_dict['k1'] = list1
    test_dict['k2'] = list2
    print(test_dict)
    # {'k1': [11, 22, 33, 44, 55, 66, 77, 88, 99, 45], 'k2': [111, 100]}


    #方法2
    list = [11,22,33,44,55,66,77,88,99,111,100,45,]
    test_dict = {}
    for i in list:
    if i >= 100:
    if 'k1' in test_dict.keys():
    test_dict['k1'].append(i)
    else:
    test_dict['k1'] = [i,]
    else:
    if 'k2' in test_dict.keys():
    test_dict['k2'].append(i)
    else:
    test_dict['k2'] = [i,]
    print(test_dict)
    # {'k2': [11, 22, 33, 44, 55, 66, 77, 88, 99, 45], 'k1': [111, 100]}

  • 相关阅读:
    使用nexus 管理pip 私有包
    gitingore && opensource license 自动生成的网站
    lua-resty-qless-web UI 界面运行
    自定义pip 包开发简单说明
    ethr 微软开源的tcp udp http 网络性能测试工具
    openresty 集成lua-resty-mail +smtp2http 扩展灵活的mail 服务
    masterlab 敏捷项目管理工具
    luarocks 自定义包发布试用
    vorpal 又一个方便的cli 开发包
    gogs wekan 集成试用
  • 原文地址:https://www.cnblogs.com/bainianminguo/p/6412978.html
Copyright © 2011-2022 走看看