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



相关文章
|
15天前
|
XML JSON API
如何使用Python将字典转换为XML
本文介绍了如何使用Python中的`xml.etree.ElementTree`库将字典数据结构转换为XML格式。通过定义递归函数处理字典到XML元素的转换,生成符合标准的XML文档,适用于与旧系统交互或需支持复杂文档结构的场景。示例代码展示了将一个简单字典转换为XML的具体实现过程。
10 1
|
3月前
|
存储 JSON 索引
一文让你彻底搞懂 Python 字典是怎么实现的
一文让你彻底搞懂 Python 字典是怎么实现的
60 13
|
3月前
|
存储 数据安全/隐私保护 Python
Python常用数据结构——字典的应用
Python常用数据结构——字典的应用
42 2
|
3月前
|
关系型数据库 MySQL 数据库
Python MySQL查询返回字典类型数据的方法
通过使用 `mysql-connector-python`库并选择 `MySQLCursorDict`作为游标类型,您可以轻松地将MySQL查询结果以字典类型返回。这种方式提高了代码的可读性,使得数据操作更加直观和方便。上述步骤和示例代码展示了如何实现这一功能,希望对您的项目开发有所帮助。
152 4
|
3月前
|
Python
Python 字典删除下标前两个
Python 字典删除下标前两个
21 1
|
2月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
39 0
|
2月前
|
存储 自然语言处理 数据库
Python字典操作实现文章敏感词检索
Python字典操作实现文章敏感词检索
29 0
|
2月前
|
存储 JSON 数据处理
分析、总结Python使用列表、元组、字典的场景
分析、总结Python使用列表、元组、字典的场景
31 0
|
2月前
|
存储 Java Serverless
【Python】字典
【Python】字典
33 0
|
2月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (一)
Python操作:字符串--列表--元组--字典--运算符 (一)
23 0