zoukankan      html  css  js  c++  java
  • python学习笔记六-字典

    Dictionary(字典)

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

    字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    创建字典:    

    dic1={'name':'alex','age':36,'sex':'male'}
    dic2=dict((('name','alex'),))
    print(dic1)
    print(dic2)
    

    对应操作:

    dic3={}
     
    dic3['name']='alex'
    dic3['age']=18
    print(dic3)
    
    
    #print结果>>>{'name': 'alex', 'age': 18}
    
    dic3={}
    a=dic3.setdefault('name','yuan')
    b=dic3.setdefault('ages',22)
    print(a,b)
    print(dic3)
    
    #>>>yuan 22
    #>>>{'name': 'yuan', 'ages': 22}
    

     

    dic3={'name': 'alex', 'age': 18}
    print(dic3['name'])
    print(dic3.items()) #查找所有键、值
    print(dic3.keys())  #查找所有键
    print(dic3.values())#查找所有值
    

     输出结果:

    alex
    dict_items([('name', 'alex'), ('age', 18)])
    dict_keys(['name', 'age'])
    dict_values(['alex', 18])
    

     

    dic3={'name': 'alex', 'age': 18}
     
    dic3['name']='alvin'
    dic4={'sex':'male','hobby':'girl','age':36}
    dic3.update(dic4)
    print(dic3)
    

    dic4={'name': 'alex', 'age': 18,'class':1}
     
     
    # dic4.clear()
    # print(dic4)
    del dic4['name']
    print(dic4)
     
    a=dic4.popitem()
    print(a,dic4)
     
    # print(dic4.pop('age'))
    # print(dic4)
     
    # del dic4
    # print(dic4)
    

     其他操作以及涉及到的方法

    1 dict.fromkeys

    d1=dict.fromkeys(['host1','host2','host3'],'Mac')
    print(d1)
     
    d1['host1']='xiaomi'
    print(d1)
    #######
    d2=dict.fromkeys(['host1','host2','host3'],['Mac','huawei'])
    print(d2)
    d2['host1'][0]='xiaomi'
    print(d2)
    

    2  d.copy() 对字典 d 进行浅复制,返回一个和d有相同键值对的新字典

    3  字典的嵌套

    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 
    ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']
    View Code

    4 sorted(dict) : 返回一个有序的包含字典所有key的列表

    dic={5:'555',2:'222',4:'444'}
    print(sorted(dic)) 
    

    5 字典的遍历

    dic5={'name': 'alex', 'age': 18}
     
    for i in dic5:
        print(i,dic5[i])
     
    for items in dic5.items():
        print(items)
    for keys,values in dic5.items():
        print(keys,values)
    

     还用我们上面的例子,存取这个班学生的信息,我们如果通过字典来完成,那:

    dic={'zhangsan':{'age':23,'sex':'male'},
         '李四':{'age':33,'sex':'male'},
         'wangwu':{'age':27,'sex':'women'}  
         }
    
  • 相关阅读:
    软工实践寒假作业(1/2)
    软工总结
    软件工程第一次结对作业
    软工实践第一次个人编程作业
    软工实践第一次作业
    2019年北航OO第四单元(UML任务)及学期总结
    2019年北航OO第三单元(JML规格任务)总结
    用Maven+IDEA+Eclipse组合获得最好的OpenJML体验
    2019年北航OO第二单元(多线程电梯任务)总结
    2019年北航OO第一单元(表达式求导任务)总结
  • 原文地址:https://www.cnblogs.com/zhangjiuzheng/p/10486476.html
Copyright © 2011-2022 走看看