Py西游攻关之基础数据类型-字典

Posted kryiran

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Py西游攻关之基础数据类型-字典相关的知识,希望对你有一定的参考价值。


Py西游攻关之基础数据类型 - Yuan先生

https://www.cnblogs.com/yuanchenqi/articles/5782764.html


七 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)

对应操作:

1 增

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

2 查

dic3={name‘: alex‘, age‘: 18}
 
# print(dic3[‘name‘])
# print(dic3[‘names‘])
#
# print(dic3.get(‘age‘,False))
# print(dic3.get(‘ages‘,False))
 
print(dic3.items())
print(dic3.keys())
print(dic3.values())
 
print(namein dic3)# py2:  dic3.has_key(‘name‘)
print(list(dic3.values()))

3 改

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

4 删

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)

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

5.1 dict.fromkeys

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

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

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

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

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

5.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}  
     }

 

 


以上是关于Py西游攻关之基础数据类型-字典的主要内容,如果未能解决你的问题,请参考以下文章

Py西游攻关之基础数据类型

Py西游攻关之基础数据类型-元组

Py西游攻关之基础数据类型-集合

Py西游攻关之基础数据类型-列表

Py西游攻关之Socket网络编程

Py西游攻关之多线程(threading模块)