P52字典

时间秒杀一切 提交于 2019-11-30 02:30:39
#1.Dictionary字典'''字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。'''#!!字典增查改 都一样 删除就用del#1.字典是中括号,且内容是无序性的,即无下表dic1={'name':'alex','age':36,'sex':'male','dd':True}      #name为键, alex为值,键是唯一的,非变量,只是一种映射关系,如拼音字典,搜索S则找到拼音以S为首的字一样    键指向值#2.不可变类型:整形,字符串,元组    可变类型:列表,字典(值为可变类型,只是键为不可变类型)dic2 = {'sex':'男','number':'10','ip':'5201314'}   #就是sex(键)是不可变的,但"男"(值)是可变的,可修改的dic2['sex'] = "女"print(dic2)         #{'sex': '女', 'number': '10', 'ip': '5201314'}#3.反正就是dic = {"不可变类型"   :   "可变类型"}#             整形,字符串,元组       列表,字典#4.它是无序的     #假设下标:1,2,3,4,5,6dic3 = {'sex_1':'男','number_1':'10','ip_1':'5201314','love':'女人','home':'301','want':'rich','abc':'456','zoo':'dd'}print(dic3)   #因为它是无序的,所以有可能#5.字典可以内置字典                #因为值是可变类型的,而字典也是,所以字典可以内置字典dic4 = {'sex': '男', 'number': '10', 'ip':{'BY':'C'}}print(dic4['ip'])#创建字典dic11=dict((('name','alex'),))      #创建字典的另一种方法print(dic1)print(dic2)#增dic3 = {}dic3['name'] = 'alex'dic3['age'] = 18print(dic3)  # {'name': 'alex', 'age': 18}a = dic3.setdefault('name', 'yuan')b = dic3.setdefault('ages', 22)    #增加字典的另一种方法print(a, b)print(dic3)#查dic3 = {'name': 'alex', 'age': 18}print(dic3.items())                      #items() 函数以列表返回可遍历的(键, 值) 元组数组。print(dic3.keys())                       #keys() 函数以列表返回可遍历的键 元组数组。print(dic3.values())                     #valuss() 函数以列表返回可遍历的值 元组数组。print('name' in dic3)                    #判断 如果name在dic3 里则True 反之则Falseprint(list(dic3.values()))#改dic3 = {'name': 'alex', 'age': 18}dic3['name'] = 'alvin'dic4 = {'sex': 'male', 'hobby': 'girl', 'age': 36}dic3.update(dic4)            #.update()     字典dict2的键/值对更新到dict里. 即把dic4加到dic3里 d3变,d4不变print(dic3,dic4)             #          >>>{'name': 'alvin', 'age': 36, 'sex': 'male', 'hobby': 'girl'} {'sex': 'male', 'hobby': 'girl', 'age': 36}#删dic4 = {'name': 'alex','class': 1,'age': 18, }del dic4['name']           #普通删除,无返回值     >>>{'class': 1, 'age': 18}print(dic4)b = dic4.pop('age')        #pop删除,有返回值     >>>18 {'class': 1}print(b,dic4)a = dic4.popitem()         #随机删除,有返回值    >>>('class', 1) {}print(a, dic4)dic4.clear()               #清空字典             >>>{}print(dic4)#其他操作以及涉及的方法    #.fromkeys() 函数用于创建一个新字典,以序列 abc 中元素做字典的键,cde 为字典所有键对应的初始值.  dic041.fromkeys(['abc','abc'],cde)  !需要一个字典seq = {}dict = seq.fromkeys(['abc','abcd'],'love')print(dict)                     #>>>{'abc': 'love', 'abcd': 'love'}    #.copy() 函数返回一个字典的浅复制dict44 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}dict22 = dict44.copy()print("新复制的字典为 : ", dict22)      #>>>新复制的字典为 :  {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}     #sorted 对所有可迭代的对象进行排序操作      sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。有返回值 应用于所有对象                                              #sort 方法返回的是对已经存在的列表进行操作,无返回值只应用于列表dic0415 = {5:'555',2:'222',3:'333'}print(sorted(dic0415))                        #默认是排列键 >>>[2, 3, 5]print(sorted(dic0415.keys()))                 #排列键       >>>[2, 3, 5]print(sorted(dic0415.items()))                #排列列表     >>>[(2, '222'), (3, '333'), (5, '555')]print(sorted(dic0415.values()))               #排列值       >>>['222', '333', '555']    #1字典的遍历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)    #列表的嵌套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"])
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!