python 字典操作

简介:

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

语法:

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env   python
# -*- coding:utf-8 -*-
info  =  {
     'stu1101' "TengLan Wu" ,
     'stu1102' "LongZe Luola" ,
     'stu1103' "XiaoZe Maliya" ,
}
print  (info)     
 
 
执行结果:
{ 'stu1103' 'XiaoZe Maliya' 'stu1102' 'LongZe Luola' 'stu1101' 'TengLan Wu' }

字典的特性:

  • dict是无序的

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

增加

1
2
3
>>> info[ "stu1104" =  "苍井空"
>>> info
{ 'stu1102' 'LongZe Luola' 'stu1104' '苍井空' 'stu1103' 'XiaoZe Maliya' 'stu1101' 'TengLan Wu' }

修改

1
2
3
>>> info[ 'stu1101' =  "武藤兰"
>>> info
{ 'stu1102' 'LongZe Luola' 'stu1103' 'XiaoZe Maliya' 'stu1101' '武藤兰' }

删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>> info
{ 'stu1102' 'LongZe Luola' 'stu1103' 'XiaoZe Maliya' 'stu1101' '武藤兰' }
>>> info.pop( "stu1101" #标准删除姿势
'武藤兰'
>>> info
{ 'stu1102' 'LongZe Luola' 'stu1103' 'XiaoZe Maliya' }
>>>  del  info[ 'stu1103' #换个姿势删除
>>> info
{ 'stu1102' 'LongZe Luola' }
>>> 
>>> 
>>> 
>>> info  =  { 'stu1102' 'LongZe Luola' 'stu1103' 'XiaoZe Maliya' }
>>> info
{ 'stu1102' 'LongZe Luola' 'stu1103' 'XiaoZe Maliya' #随机删除
>>> info.popitem()
( 'stu1102' 'LongZe Luola' )
>>> info
{ 'stu1103' 'XiaoZe Maliya' }


查找

1
2
3
4
5
6
7
8
9
10
11
12
>>> info  =  { 'stu1102' 'LongZe Luola' 'stu1103' 'XiaoZe Maliya' }
>>> 
>>>  "stu1102"  in  info  #标准用法
True
>>> info.get( "stu1102" )   #获取
'LongZe Luola'
>>> info[ "stu1102" #同上,但是看下面
'LongZe Luola'
>>> info[ "stu1105" ]   #如果一个key不存在,就报错,get不会,不存在只返回None
Traceback (most recent call last):
   File  "<stdin>" , line  1 in  <module>
KeyError:  'stu1105'

多级字典嵌套及操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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 
[ '全部免费,真好,好人一生平安' '服务器在国外,慢,可以用爬虫爬下来' ]

其它姿势

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#values
>>> info.values()
dict_values([ 'LongZe Luola' 'XiaoZe Maliya' ])
 
#keys
>>> info.keys()
dict_keys([ 'stu1102' 'stu1103' ])
 
 
#setdefault
>>> info.setdefault( "stu1106" , "Alex" )
'Alex'
>>> info
{ 'stu1102' 'LongZe Luola' 'stu1103' 'XiaoZe Maliya' 'stu1106' 'Alex' }
>>> info.setdefault( "stu1102" , "龙泽萝拉" )
'LongZe Luola'
>>> info
{ 'stu1102' 'LongZe Luola' 'stu1103' 'XiaoZe Maliya' 'stu1106' 'Alex' }
 
 
#update 
>>> info
{ 'stu1102' 'LongZe Luola' 'stu1103' 'XiaoZe Maliya' 'stu1106' 'Alex' }
>>> b  =  { 1 : 2 , 3 : 4 "stu1102" : "龙泽萝拉" }
>>> info.update(b)
>>> info
{ 'stu1102' '龙泽萝拉' 1 2 3 4 'stu1103' 'XiaoZe Maliya' 'stu1106' 'Alex' }
 
#items
info.items()
dict_items([( 'stu1102' '龙泽萝拉' ), ( 1 2 ), ( 3 4 ), ( 'stu1103' 'XiaoZe Maliya' ), ( 'stu1106' 'Alex' )])
 
 
#通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
>>>  dict .fromkeys([ 1 , 2 , 3 ], 'testd' )
{ 1 'testd' 2 'testd' 3 'testd' }

循环dict 

1
2
3
4
5
6
#方法1
for  key  in  info:
     print (key,info[key])
#方法2
for  k,v  in  info.items():  #会先把dict转成list,数据里大时莫用
     print (k,v)


本文转自 baishuchao 51CTO博客,原文链接:http://blog.51cto.com/baishuchao/1935077



相关文章
|
3天前
|
存储 Python
一文掌握python数组字典dict()的全部用法(零基础学python(三))
一文掌握python数组字典dict()的全部用法(零基础学python(三))
25 0
|
5天前
|
Python
python常见操作10例
python常见操作10例
16 2
|
8天前
|
数据处理 Python
Python中字符串、列表、字典常用的拼接方法有哪些?
Python中字符串、列表、字典常用的拼接方法有哪些?
38 1
|
9天前
|
缓存 NoSQL 数据库
除了字典,还有哪些其他的缓存数据结构可以在Python中使用?
除了字典,还有哪些其他的缓存数据结构可以在Python中使用?
9 1
|
9天前
|
开发工具 git Python
Python千万级字典快速去重脚本
Python千万级字典快速去重脚本
7 0
|
9天前
|
大数据 数据处理 Python
Python中的列表推导式与字典推导式
Python中的列表推导式与字典推导式
|
9天前
|
测试技术 Python
Python中的列表推导式与字典推导式:简化代码的高级技巧
Python中的列表推导式与字典推导式:简化代码的高级技巧
|
9天前
|
存储 数据处理 Python
文件I/O操作在Python中的实现与技巧
文件I/O操作在Python中的实现与技巧
|
14天前
|
大数据 程序员 Python
Python中的异步编程:使用asyncio库实现高效IO操作
传统的同步编程模式在处理IO密集型任务时效率较低,因此异步编程成为了解决这一问题的关键。本文将介绍如何利用Python中的asyncio库实现异步编程,以及如何利用异步特性提高IO操作的效率,让你的程序更加响应迅速。
|
24天前
|
JSON JavaScript 前端开发
Python之JavaScript逆向系列——接口JSON信息获取与操作
Python之JavaScript逆向系列——接口JSON信息获取与操作
34 0

相关产品

  • 云迁移中心