• python学习:字典


    字典

    1.查询内存地址

    a = 10

    print(id(a))

    b = a

    print(id(b))

    b = 15

    print(id(b))

    2. 数据类型

    不可变类型:整型、字符串、元组

    可变类型:列表、字典

    字典的值可以是任意类型,键只能是不可变类型。

    字典存储是无序的。例如:

    dic = {'name':'ysw','age':36,'hobby':'game','is_handsome':True}

    print(dic)

    print(dic['name'])

    #dic = {1:'ysw','age':36,'hobby':'game','is_handsome':True}

    #print(dic)

    #print(dic[1])          #键改为整型没有问题

    #dic = {[1,2]:'ysw','age':36,'hobby':'game','is_handsome':True}

    #print(dic)

    #print(dic[[1,2]])         #键改为列表出现问题

    #dic = {'name':'ysw','age':36,'hobby':{'game_name':'wow','level':'20'},'is_handsome':True}

    #print(dic['hobby'])

    #dic = {{'1':'123'},'age':36,'hobby':{'game_name':'wow','level':'20'},'is_handsome':True}

    #print(dic)

    #字典两大特点:无序;键唯一

    #dic = {'age':'ysw','age':36,'hobby':'game','is_handsome':True}

    #print(dic)

    3.字典的两种创建方式:

    #dic1 = {'name':'ysw'}

    #dic2 = dict((('name','ysw'),))

     4.对应操作

      (1)增

    dic1 = {'name':'ysw'}

    dic1['age'] = 18

    print(dic1)

    dic1['name'] = 18

    print(dic1)

    #没有重复的键就添加,有重复的键就替换数值

    ------------------------------

    dic1 = {'name':'ysw'}

    dic1['age'] = 18

    print(dic1)

    dic1.setdefault('age',36)

    print(dic1)

    #dic1.setdefault('hobby','game')

    #print(dic1)

    #setdefault的特点:没有重复的键就添加,并返回添加键的值;有重复的键就没有变化,并返回字典中重复键的值。

    #ret = dic1.setdefault('age',36)

    #print(ret)

    #ret2 = dic1.setdefault('hobby','game')

    #print(dic1)

    #print(ret2)

       (2)查

    利用键名来查找键的值

    dic3 = {'name':'ysw','age':36,'hobby':'game','is_handsome':True}

    print(dic3['name'])

    print(dic3.keys())  #查找字典中所有的键名,结果并不是列表类型,可以通过list命令转换为列表

    print(list(dic3.keys()))

    print(dic3.values())  #查看字典中所有键对应的值,结果并不是列表类型,可以通过list命令转换为列表

    print(list(dic3.values()))

    print(dic3.items())  #查看字典中所有键值对 ,结果并不是列表类型,可以通过list命令转换为列表

    print(list(dic3.items()))

      (3)改

    dic1 = {'name':'ysw'}

    dic1['name'] = 18

    print(dic1)

    -------------------------------------------------------

    dic4 = {'name':'ysw','age':36,'hobby':'game','is_handsome':True}

    dic5 = {'1':'111','2':'222','age':'35'}

    dic4.update(dic5)  #dic5与dic4没有重复的将dic5添加到dic4,有重复的就更新键值对;dic5保持不变。

    print(dic4)

    print(dic5)

    #删:
    # dic = {'name':'ysw','age':36,'hobby':'game','is_handsome':True}
    # del dic['name'] #del 删除指定键值对
    # print(dic)

    #dic = {'name':'ysw','age':36,'hobby':'game','is_handsome':True}
    # dic.clear() #clear清空字典
    # print(dic)

    # ret = dic.pop('age') #pop删除指定键值对,并返回删除的键值对的值
    # print(ret)
    # print(dic)

    # a = dic.popitem() #popitem随机删除一组键值对,并以元组方式返回值
    # print(a,dic)

    # del dic #删除整个字典,内存中不再有该字典
    # print(dic)

    #其他操作以及涉及到的方法:
    # dic6 = dict.fromkeys(['host1','host2','host3'],'test')
    # print(dic6)

    #字典嵌套
    # av_catalog = {
    # "欧美":{
    # "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
    # "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
    # "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
    # "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
    # },
    # "日韩":{
    # "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
    # },
    # "大陆":{
    # "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
    # }
    # }
    # #
    # # av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"
    # # print(av_catalog["大陆"]["1024"])
    # # #ouput
    # # ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']
    # av_catalog['欧美']['www.youporn.com'][1] = '高清无码'
    # print(av_catalog)
    #字典排序 根据键的值进行排列
    # dic = {5:'555',2:'666',4:'444'}
    # print(sorted(dic))
    # print(sorted(dic.values()))
    # print(sorted(dic.items()))

    #字典的遍历
    # dic5 = {'name':'ysw','age':36}
    # for i in dic5:
    # print(i)
    # print(i,dic5[i]) #推荐这一种方法,效率高
    # for i in dic5.items():
    # print(i)
    # for i,v in dic5.items():
    # print(i,v)
  • 相关阅读:
    android 从相册获取图片
    python 自定义函数
    《设计模式》-总复习(三)
    《设计模式》-总复习(二)
    《设计模式》-总复习(一)
    《设计模式》-策略模式
    《设计模式》-模板模式
    《设计模式》-访问者模式
    《设计模式》-观察者模式
    《设计模式》-命令模式
  • 原文地址:https://www.cnblogs.com/pl-2018/p/9500850.html
Copyright © 2020-2023  润新知