Python字典创建 遍历 添加等实用基础操作技巧


Posted in Python onSeptember 13, 2018

字段是Python是字典中唯一的键-值类型,是Python中非常重要的数据结构,因其用哈希的方式存储数据,其复杂度为O(1),速度非常快。下面列出字典的常用的用途.

一、字典中常见方法列表

代码如下:

D.clear() #移除D中的所有项

D.copy() #返回D的副本

D.fromkeys(seq[,val]) #返回从seq中获得的键和被设置为val的值的字典。可做类方法调用

D.get(key[,default]) #如果D[key]存在,将其返回;否则返回给定的默认值None

D.has_key(key) #检查D是否有给定键key

D.items() #返回表示D项的(键,值)对列表

D.iteritems() #从D.items()返回的(键,值)对中返回一个可迭代的对象

D.iterkeys() #从D的键中返回一个可迭代对象

D.itervalues() #从D的值中返回一个可迭代对象

D.keys() #返回D键的列表

D.pop(key[,d]) #移除并且返回对应给定键key或给定的默认值D的值

D.popitem() #从D中移除任意一项,并将其作为(键,值)对返回

D.setdefault(key[,default]) #如果D[key]存在则将其返回;否则返回默认值None

D.update(other) #将other中的每一项加入到D中。

D.values()#返回D中值的列表

二、创建字典的五种方法

方法一: 常规方法

代码如下:

# 如果事先能拼出整个字典,则此方法比较方便

>>> D1 = {'name':'Bob','age':40}

方法二: 动态创建

代码如下:

# 如果需要动态地建立字典的一个字段,则此方法比较方便

>>> D2 = {}

>>> D2['name'] = 'Bob'

>>> D2['age'] = 40

>>> D2

{'age': 40, 'name': 'Bob'}

方法三: dict--关键字形式

代码如下:

# 代码比较少,但键必须为字符串型。常用于函数赋值

>>> D3 = dict(name='Bob',age=45)

>>> D3

{'age': 45, 'name': 'Bob'}

方法四: dict--键值序列

代码如下:

# 如果需要将键值逐步建成序列,则此方式比较有用,常与zip函数一起使用

>>> D4 = dict([('name','Bob'),('age',40)])

>>> D4

{'age': 40, 'name': 'Bob'}

代码如下:

>>> D = dict(zip(('name','bob'),('age',40)))

>>> D

{'bob': 40, 'name': 'age'}

方法五: dict--fromkeys方法# 如果键的值都相同的话,用这种方式比较好,并可以用fromkeys来初始化

代码如下:

>>> D5 = dict.fromkeys(['A','B'],0)

>>> D5

{'A': 0, 'B': 0}

如果键的值没提供的话,默认为None

代码如下:

>>> D3 = dict.fromkeys(['A','B'])

>>> D3

{'A': None, 'B': None}

三、字典中键值遍历方法

代码如下:

>>> D = {'x':1, 'y':2, 'z':3} # 方法一
>>> for key in D:
print key, '=>', D[key]
y => 2
x => 1
z => 3
>>> for key, value in D.items(): # 方法二
print key, '=>', value
y => 2
x => 1
z => 3
>>> for key in D.iterkeys(): # 方法三
print key, '=>', D[key]
y => 2
x => 1
z => 3
>>> for value in D.values(): # 方法四
print value
2
1
3
>>> for key, value in D.iteritems(): # 方法五
print key, '=>', value
y => 2
x => 1
z => 3

Note:用D.iteritems(), D.iterkeys()的方法要比没有iter的快的多。

四、字典的常用用途之一代替switch

在C/C++/Java语言中,有个很方便的函数switch,比如:

代码如下:

public class test {
public static void main(String[] args) {
String s = "C";
switch (s){
case "A":
System.out.println("A");
break;
case "B":
System.out.println("B");
break;
case "C":
System.out.println("C");
break;
default:
System.out.println("D");
}
}
}

在Python中要实现同样的功能,

方法一,就是用if, else语句来实现,比如:

代码如下:

from __future__ import division
def add(x, y):
return x + y
def sub(x, y):
return x - y
def mul(x, y):
return x * y
def div(x, y):
return x / y
def operator(x, y, sep='+'):
if sep == '+': print add(x, y)
elif sep == '-': print sub(x, y)
elif sep == '*': print mul(x, y)
elif sep == '/': print div(x, y)
else: print 'Something Wrong'
print __name__
if __name__ == '__main__':
x = int(raw_input("Enter the 1st number: "))
y = int(raw_input("Enter the 2nd number: "))
s = raw_input("Enter operation here(+ - * /): ")
operator(x, y, s)

方法二,用字典来巧妙实现同样的switch的功能,比如:

代码如下:

#coding=gbk
from __future__ import division
x = int(raw_input("Enter the 1st number: "))
y = int(raw_input("Enter the 2nd number: "))
def operator(o):
dict_oper = {
'+': lambda x, y: x + y,
'-': lambda x, y: x - y,
'*': lambda x, y: x * y,
'/': lambda x, y: x / y}
return dict_oper.get(o)(x, y)
if __name__ == '__main__':
o = raw_input("Enter operation here(+ - * /): ")
print operator(o)

本文所讲解的内容非常重要,一定要熟练掌握。在日常Python开发工作中会经常用到

Python 相关文章推荐
python基于pygame实现响应游戏中事件的方法(附源码)
Nov 11 Python
利用python画一颗心的方法示例
Jan 31 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
《与孩子一起学编程》python自测题
May 27 Python
python的pip安装以及使用教程
Sep 18 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
django之使用celery-把耗时程序放到celery里面执行的方法
Jul 12 Python
Pandas之groupby( )用法笔记小结
Jul 23 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 Python
python3 enum模块的应用实例详解
Aug 12 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
Jan 28 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
Feb 01 Python
python单例模式获取IP代理的方法详解
Sep 13 #Python
如何利用python制作时间戳转换工具详解
Sep 12 #Python
Python get获取页面cookie代码实例
Sep 12 #Python
python读取和保存图片5种方法对比
Sep 12 #Python
python3 拼接字符串的7种方法
Sep 12 #Python
python简单操作excle的方法
Sep 12 #Python
使用python实现快速搭建简易的FTP服务器
Sep 12 #Python
You might like
PHP的PSR规范中文版
2013/09/28 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
基于jquery实现下拉框美化特效
2016/02/02 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
React Native实现地址挑选器功能
2017/10/24 Javascript
javascript中的隐式调用
2018/02/10 Javascript
使用async await 封装 axios的方法
2018/07/09 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
使用Python对Excel进行读写操作
2017/03/30 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
python中使用while循环的实例
2019/08/05 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
Python对象的属性访问过程详解
2020/03/05 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
见习期自我鉴定
2014/01/31 职场文书
岗位工作说明书
2014/07/29 职场文书
安全演讲稿开场白
2014/08/25 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
艺术节开幕词
2015/01/28 职场文书
黄石寨导游词
2015/02/05 职场文书
西岭雪山导游词
2015/02/06 职场文书
请假条应该怎么写?
2019/06/24 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
详解如何使用Nginx解决跨域问题
2022/05/06 Servers