一、字典操作

字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

语法:

1、基本语法

 >>> info = {
'stu1101': "Ma Qing",
'stu1102': "Pei Lin",
'stu1103': "Wang Chuan",
'stu1104': "Cai Jin",
}
>>> print(info)
{'stu1104': 'Cai Jin', 'stu1103': 'Wang Chuan', 'stu1102': 'Pei Lin', 'stu1101': 'Ma Qing'}

2、字典的特性:

  • dict是无序的

  • key必须是唯一的,so 天生去重

3、字典增加

 >>> info["stu1105"] = "蔡文华"
>>> print(info)
{'stu1104': 'Cai Jin', 'stu1105': '蔡文华', 'stu1103': 'Wang Chuan', 'stu1102': 'Pei Lin', 'stu1101': 'Ma Qing'}

4、修改

 >>> info["stu1101"] = "马青"
>>> print(info)
{'stu1104': 'Cai Jin', 'stu1105': '蔡文华', 'stu1103': 'Wang Chuan', 'stu1102': 'Pei Lin', 'stu1101': '马青'}

5、删除

 #方法一:
>>> info.pop("stu1101")
'马青'
>>> print(info)
{'stu1104': 'Cai Jin', 'stu1105': '蔡文华', 'stu1103': 'Wang Chuan', 'stu1102': 'Pei Lin'}
#方法二:
>>> del info["stu1105"]
>>> print(info)
{'stu1104': 'Cai Jin', 'stu1103': 'Wang Chuan', 'stu1102': 'Pei Lin'}
#随机删除
>>> info.popitem()
('stu1104', 'Cai Jin')
>>> print(info)
{'stu1103': 'Wang Chuan', 'stu1102': 'Pei Lin'}

6、查找

>>> info = {
'stu1101': "Ma Qing",
'stu1102': "Pei Lin",
'stu1103': "Wang Chuan",
'stu1104': "Cai Jin",
}
#如果差绕的key在字典中不存在,则程序报错
>>> info["stu1102"]
'Pei Lin'
#推荐用get判断,无论字典中是否有要查找的key,python不会报错
>>> info.get("stu1103")
'Wang Chuan'
>>> info.get("stu1105")

判断字典中是否存在某个值

 print("stu1103" in info)    #如果不存在报错!

7、多级字典嵌套

 >>> av_catalog = {
"欧美":{
"www.youporn.com": ["很多免费的,世界最大的","质量一般"],
"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
},
"大陆":{
"":["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
}
>>> av_catalog["大陆"][""][1] += ",可以用爬虫爬下来"
print(av_catalog["大陆"][""])
['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']

8、其他用法

1)values 将字典中的所有values值,生成一个列表

 av_catalog.values()
dict_values([{'x-art.com': ['质量很高,真的很高', '全部收费,屌比请绕过'], 'www.youporn.com': ['很多免费的,世界最大的', '质量一般'], 'letmedothistoyou.com': ['多是自拍,高质量图片很多', '资源不多,更新慢'], 'www.pornhub.com': ['很多免费的,也很大', '质量比yourporn高点']}, {'tokyo-hot': ['质量怎样不清楚,个人已经不喜欢日韩范了', '听说是收费的']}, {'': ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']}])

2)keys将字典中的所有keys值,生成一个列表

 >>> av_catalog.keys()
dict_keys(['欧美', '日韩', '大陆'])

3)setdefault(k,v)

setdefault()表示去取字典中的key,如果取不到,则设置新值,相反如果取到,则返回原有默认值。

4)update更新字典。如果原字典已有数据已新字典内容为准

  info = {
'stu1101': "Ma Qing",
'stu1102': "Pei Lin",
'stu1103': "Wang Chuan",
'stu1104': "Cai Jin",
}
>>> info2 = {1:2,3:4,"stu1103":"王川"} >>> info.update(info2)
>>> info
{'stu1103': '王川', 1: 2, 'stu1101': 'Ma Qing', 'stu1104': 'Cai Jin', 3: 4, 'stu1102': 'Pei Lin'}

5)items 将字典转化为列表

 >>> info.items()
dict_items([('stu1103', '王川'), (1, 2), ('stu1101', 'Ma Qing'), ('stu1104', 'Cai Jin'), (3, 4), ('stu1102', 'Pei Lin')])

6)#通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个

 >>> info3 = dict.fromkeys([6,7,8],"test")
>>> print(info3)
{8: 'test', 6: 'test', 7: 'test'}
  c = dict.fromkeys([6,7,8],[1,{"name":"maqing"},666])
>>> print(c)
{8: [1, {'name': 'maqing'}, 666], 6: [1, {'name': 'maqing'}, 666], 7: [1, {'name': 'maqing'}, 666]}
>>> c[7][1]["name"] = "Peilin"
>>> print(c)
{8: [1, {'name': 'Peilin'}, 666], 6: [1, {'name': 'Peilin'}, 666], 7: [1, {'name': 'Peilin'}, 666]}

7)dict的循环

 #输出字典
for i in info :
print(i,info[i])
#方法二,先把字典转化为列表,然后输出列表
for k,v in info.items():
print(k,v)

Day2-Python基础2---字典操作的更多相关文章

  1. Python基础之字典操作

    字典 字典的优点: dict key 必须是不可变数据类型,可哈希, value:任意数据类型. dict 优点:二分查找去查询 存储大量的关系型数据 特点:无序的(指的是不可人为的去改变顺序) 数据 ...

  2. Day2 - Python基础2 列表、字典、集合

    Python之路,Day2 - Python基础2   本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...

  3. python基础之字典dict和集合set

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...

  4. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  5. python基础篇(文件操作)

    Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...

  6. Day2 - Python基础2 列表、字符串、字典、集合、文件、字符编码

    本节内容 列表.元组操作 数字操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 ...

  7. python基础之字典、集合

    一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...

  8. Python day2 ---python基础2

    本节内容 列表. 元组操作 购物车程序 字符串操作 字典操作 3级菜单 作业(购物车优化) 1. 列表操作 1.定义列表names = ['Alex',"Tenglan",'Eri ...

  9. Python之路,Day2 - Python基础(转载Alex)

    Day2-转自金角大王 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存 ...

  10. python 基础之字典一

    字典特点:无序.键唯一 字典的创建 bag = {'cx':'chenxi','gghg':35} print(bag['cx']) 测试 chenxi Process finished with e ...

随机推荐

  1. 写时拷贝(Copy On Write)方案详解

    本文旨在通过对 写时拷贝 的四个方案(Copy On Write)分析,让大家明白写时拷贝的实现及原理. 关于浅拷贝与深拷贝,我在之前的博客中已经阐述过了  浅拷贝容易出现指针悬挂的问题,深拷贝效率低 ...

  2. HashSet,TreeSet和LinkedHashSet的区别

    1. Set接口 Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false. Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个 ...

  3. linux虚拟机ping通主机

    右键虚拟机,选择网络适配器,设置为桥接模式.然后关闭主机防火墙,ping就行了(一直ping是没有参数的)

  4. Python的format函数

    Python的format函数 自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串. 语法 它通过{}和:来代替%. 请看下面的示例,基本上总 ...

  5. Vue v-on v-model 组合使用

    v-on vue可以使用v-on指令来监听事件,方便与用户进行交互.我们不需要修改DOM中的数据,所有的操作都由Vue来实现,你编写的代码只需要关注底层逻辑.这也是Vue强大的地方之一 <!DO ...

  6. 智课雅思词汇---二十二、-al即是名词性后缀又是形容词后缀

    智课雅思词汇---二十二.-al即是名词性后缀又是形容词后缀 一.总结 一句话总结: 后缀:-al ②[名词后缀] 1.构成抽象名词,表示行为.状况.事情 refusal 拒绝 proposal 提议 ...

  7. composer出现Invalid credentials for ‘https://packagist.phpcomposer.com/packages.json’的错误

    composer出现Invalid credentials for ‘https://packagist.phpcomposer.com/packages.json’的错误 一.总结 一句话总结:出现 ...

  8. jedis中的一致性hash算法

    [http://my.oschina.net/u/866190/blog/192286] jredis是redis的java客户端,通过sharde实现负载路由,一直很好奇jredis的sharde如 ...

  9. 解决 Firefox 火狐浏览器下载 .exe 文件卡住的问题 以及关闭测试版cache2

    解决 Firefox 火狐浏览器下载 .exe 文件卡住的问题 在firefox浏览器地址栏里输入:about:config 点“我保证会小心”,显示firefox的高级配置列表 在配置页面的搜索框里 ...

  10. C#中的线程(一)入门

    C#中的线程(一)入门   Keywords:C# 线程Source:http://www.albahari.com/threading/Author: Joe AlbahariTranslator: ...