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



相关文章
|
24天前
|
存储 开发者 Python
Python中的collections模块与UserDict:用户自定义字典详解
【4月更文挑战第2天】在Python中,`collections.UserDict`是用于创建自定义字典行为的基类,它提供了一个可扩展的接口。通过继承`UserDict`,可以轻松添加或修改字典功能,如在`__init__`和`__setitem__`等方法中插入自定义逻辑。使用`UserDict`有助于保持代码可读性和可维护性,而不是直接继承内置的`dict`。例如,可以创建一个`LoggingDict`类,在设置键值对时记录操作。这样,开发者可以根据具体需求定制字典行为,同时保持对字典内部管理的抽象。
|
1月前
|
数据格式 Python
如何使用Python的Pandas库进行数据透视图(melt/cast)操作?
Pandas的`melt()`和`pivot()`函数用于数据透视。基本步骤:导入pandas,创建DataFrame,然后使用这两个函数转换数据格式。示例代码展示了如何通过`melt()`转为长格式,再用`pivot()`恢复为宽格式。输入数据是包含&#39;Name&#39;和&#39;Age&#39;列的DataFrame,最终结果经过转换后呈现出不同的布局。
40 6
|
1月前
|
Unix Shell Linux
赞!优雅的Python多环境管理神器!易上手易操作!
赞!优雅的Python多环境管理神器!易上手易操作!
|
18天前
|
人工智能 机器人 C++
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
|
1天前
|
JSON 数据可视化 定位技术
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
4 0
|
2天前
|
JSON 数据格式 索引
python 又一个点运算符操作的字典库:Munch
python 又一个点运算符操作的字典库:Munch
20 0
|
7天前
|
索引 Python
如何使用Python的Pandas库进行数据透视表(pivot table)操作?
使用Pandas在Python中创建数据透视表的步骤包括:安装Pandas库,导入它,创建或读取数据(如DataFrame),使用`pd.pivot_table()`指定数据框、行索引、列索引和值,计算聚合函数(如平均分),并可打印或保存结果到文件。这允许对数据进行高效汇总和分析。
10 2
|
14天前
|
数据采集 JSON 网络协议
「Python系列」Python urllib库(操作网页URL对网页的内容进行抓取处理)
`urllib` 是 Python 的一个标准库,用于打开和读取 URLs。它提供了一组模块,允许你以编程方式从网络获取数据,如网页内容、文件等。
35 0
|
15天前
|
安全 Python
python字典的内置方法
Python字典主要方法包括:`keys()`(返回所有键)、`values()`(返回所有值)、`items()`(返回所有键值对)、`get()`(安全取值,键不存在时返回默认值)、`setdefault()`(设置默认值)、`update()`(合并字典)、`pop()`(删除并返回值)、`clear()`(清空字典)、`copy()`(浅拷贝)、`fromkeys()`(新建字典并设置默认值)、`popitem()`(随机删除键值对)。
8 0
|
24天前
|
存储 Java 程序员
【Python】6. 基础语法(4) -- 列表+元组+字典篇
【Python】6. 基础语法(4) -- 列表+元组+字典篇
41 1