• 字典


    如果大家看过以前我写的内容就会知道有列表  但是既然有了列表,因为你存储的内容有五花八门的,如果你想为你存储的内容起个NB的名字的时候你该怎么存储呢? 这个时候烦人的字典就又来了(是不死有人会说 怎么这么烦人还要学习这么多的知识点  慢慢来 你会发现学的会更多)

     字典的key必须是不可变类型也就是字典的key只可以用元组 int  str   forzenset的集合

    字典常用方法

    增加:

      第一种 直接增加key值进行赋值来增加元素  有则覆盖 无则添加

    info_dic = {'name':'honglingjing', 'sge':18 , 'sex':''}
    info_dic['eat'] = ''
    print(info_dic)

    setdefault---->  如果有key就不变 没有就添加

    info_dic = {'name':'honglingjing', 'sge':18 , 'sex':''}
    info_dic.setdefault('name','laowang')  #把name的变量添加到字典中  setdefault 是把键值对添加到一个字典中 如果字典中有这个key值就不覆盖
    print(info_dic)

    update------>  把两个字典相加 覆盖

    info_dic = {'name':'honglingjing', 'sge':18 , 'sex':''}
    info = {'name':'', 'age':17, 'hobby':'吃饭'}
    info_dic.update(info) #把括号内的字典info 覆盖到info_dic中 并且info_dic的其他多余的内容还保存不变
    print(info_dic)

    删除:

    pop  clear  del

    pop 删除

    dic.pop('hobby')
    print(dic)  #报错
    print(dic.pop('hobby',None))

    clear  是清空字典

    del是删除整个字典  也可以指定key值来删除

    dic = {"name":"jin",
           "age":18,
           "sex":"male",
           }
    del dic['name']  #可以指定key值来删除
    print(dic)
    dic = {"name":"jin",
           "age":18,
           "sex":"male",
           }
    # del dic['name']  #可以指定key值来删除
    # print(dic)
    print(dic['name'])
    # print(dic['name1']) #报错
    print(dic.get('name'))  #用get来查找
    print(dic.get('age1')) #默认返回值是None
    print(dic.get('name1','没有这个值'))  #y也可定义返回的值

    get()----->查找 查找指定的元素

    把下面列表用字典的get()大于66的和小于66的分开放在字典中:

    li= [11,22,33,44,55,66,77,88,99,90]
    dic = {}
    for i in li:
        if i > 66:
            if dic.get('k1'):
                dic['k1'].append(i)
            else:
                dic['k1'] = [i]
        elif i < 66:
            if dic.get('k2'):
                dic['k2'].append(i)
            else:
                dic['k2'] = [i]
    
    
    print(dic)

    keys()----->查找字典内所有的key:

    我们如果想单独的查找字典内的key的值 我们可以用到keys() 方法 就是寻找 字典中的所有的key键

    dic = {"name":"jin",
           "age":18,
           "sex":"male",
           }
    
    print(dic.keys())  #查找字典中所有的key

    values()------>查找字典内所有的值value:

    dic = {"name":"jin",
           "age":18,
           "sex":"male",
           }
    
    print(dic.values())

    items() ------>查找字典内的键值对:  (几乎都是配合for循环来实现的)

    dic = {"name":"jin",
           "age":18,
           "sex":"male",
           }
    print(dic.items())

     formkeys();就是你可以把一个可迭代对象设置成一个字典的key  这个可迭代对象的所有元素都和这个value对应,就是通过fromkeys()转化后可迭代对象中的每一个元素所对应的value都相同

    i = [1, 2, 4]
    l = {}
    l = l.fromkeys(i)
    print(l){1: None, 2: None, 4: None}

     

    就是创建的字典的中key可以不同但是指向的value是同一个内存地址的

    v = dict.fromkeys(['k1','k2'],[])  # 创建的 字典key是k1 和k2 但是value都是[]
    print(v)   # {'k1': [], 'k2': []}
    v['k1'].append(666)  # {'k1': [666], 'k2': [666]}
    print(v)
    v['k1'] = 777     
    print(v)  # {'k1': 777, 'k2': [666]}
    # -*- coding: utf-8 -*-
    #python 27
    #xiaodeng
    #python之函数用法fromkeys()
    
    
    
    #fromkeys()
    #说明:用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
    '''
    >>> help(dict.fromkeys)
    Help on built-in function fromkeys:
    
    fromkeys(...)
        dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.
        v defaults to None.
    '''
    
    
    #案例
    d=[1,2,3]
    dict={}
    dict=dict.fromkeys(d)
    print dict                          #{1: None, 2: None, 3: None}
    dict=dict.fromkeys(d,'xiaodeng')    #xiaodeng为默认值
    print dict                          #{1: 'xiaodeng', 2: 'xiaodeng', 3: 'xiaodeng'}
    View Code
  • 相关阅读:
    【转】批处理第三方命令行工具汇总(2014-11-10更新)
    爬虫问题汇总 + 解决
    ocs的沟通平台
    DSCP 与IP 优先级IP优先级
    IPSec协议
    GRE 协议简介
    使用VLC创建组播流
    华为olt ma5680t常用命令详解
    Python统计列表中的重复项出现的次数的方法
    Kafka
  • 原文地址:https://www.cnblogs.com/zhaoyunlong/p/8625563.html
Copyright © 2020-2023  润新知