[Python3 填坑] 012 字典的遍历在 Python2 与 Python3 中区别
1. print( 坑的信息 )
- 挖坑时间:2019/01/19
- 明细
| 坑的编码 | 内容 |
|---|---|
| Py016-1 | 字典的遍历在 Python2 与 Python3 中区别 |
2. 开始填坑
2.1 Python2 中字典的遍历
# 例 1
# Python2 中字典的遍历
dict1 = {"a":"apple", "b":"banana", "c":"cherry", "d":"durian"}
for k in dict1:
print "dict1[%s] =" % k, dict1[k]
>>>
dict1[a] = apple
dict1[b] = banana
dict1[c] = cherry
dict1[d] = durian
# 例 2
# Python2 字典对 items() 的使用
# iterms() 把字典中每对 key 和 value 都组成一个元组,并把这些元组存放到列表中返回
dict2 = {"a":"apple", "b":"banana", "c":"cherry", "d":"durian"}
print dict2.items()
>>>
[('a', 'apple'), ('c', 'cherry'), ('b', 'banana'), ('d', 'durian')]
# 例 3
# Python2 使用字典的 items() 方法实现字典的遍历
dict3 = {"a":"apple", "b":"banana", "c":"cherry", "d":"durian"}
for (k, v) in dict3.items(): # k, v 不加括号也行,注意输出的顺序
print "dict3[%s] =" % k, v
>>>
dict3[a] = apple
dict3[b] = banana
dict3[d] = durian
dict3[c] = cherry
- Python2 使用 iteritems()、iterkeys()、itervalues() 实现字典的遍历
- 注意输出的顺序
# 例 4.1
# Python2 使用 iteritems() 实现对字典的遍历
dict4 = {"a":"apple", "b":"banana", "c":"cherry", "d":"durian"}
print dict4.iteritems() # 返回字典的遍历器对象
>>>
<dictionary-itemiterator object at 0x00A50B60>
# 例 4.2
# Python2 使用 iteritems() 实现对字典的遍历(与例 3 相似)
for k, v in dict4.iteritems():
print "dict4[%s] =" % k, v # k、v 与遍历器对象指定的元组 (key, value) 对应
>>>
dict4[a] = apple
dict4[b] = banana
dict4[d] = durian
dict4[c] = cherry
# 例 4.3
# Python2 使用 iterkeys() 与 itervalues() 实现对字典的遍历
for (k, v) in zip(dict4.iterkeys(), dict4.itervalues()):
print "* dict4[%s] =" % k, v # k 与 iterkeys() 指向的 key 列表中的值对应
# v 与 itervalues() 指向的 value 列表中的值对应
>>>
dict4[a] = apple
dict4[b] = banana
dict4[d] = durian
dict4[c] = cherry
2.2 Python3 中字典的遍历
# 例 5
# Python3 中字典的遍历
dict5 = {"a":"apple", "b":"banana", "c":"cherry", "d":"durian"}
for k in dict5: # 对比 例 1
print("dict5[{0}] = {1}".format(k, dict5[k]))
>>>
dict5[a] = apple
dict5[b] = banana
dict5[c] = cherry
dict5[d] = durian
- Python3 使用 items()、keys()、values() 实现字典的遍历
# 例 6.1
# Python3 使用 items() 实现对字典的遍历
dict6 = {"a":"apple", "b":"banana", "c":"cherry", "d":"durian"}
print(dict6.items()) # 对比例 2、例 4.1
>>>
dict_items([('a', 'apple'), ('b', 'banana'), ('c', 'cherry'), ('d', 'durian')])
# 例 6.2
# Python3 使用 items() 实现对字典的遍历
dict6 = {"a":"apple", "b":"banana", "c":"cherry", "d":"durian"}
for k, v in dict6.items(): # 对比例 4.2
print("dict6[{0}] = {1}".format(k, v))
>>>
dict6[a] = apple
dict6[b] = banana
dict6[c] = cherry
dict6[d] = durian
# 例 6.3
# Python3 使用 keys() 与 values() 实现对字典的遍历
dict6 = {"a":"apple", "b":"banana", "c":"cherry", "d":"durian"}
for k in dict6.keys(): # 对比例 4.3,不需要 zip()
print("dict6[{0}] = {1}".format(k, dict6[k]))
>>>
dict6[a] = apple
dict6[b] = banana
dict6[c] = cherry
dict6[d] = durian
2.3 结论
- Python2/3 中的字典都是无序的
- Python2 是随机输出字典中的键值对的,详见例 3、例 4.2、例 4.3
- Python3 会按一定顺序输出字典中的键值对
- print 在 Python2 与 Python3 中的性质与使用方式都不同,遍历时受其影响
- 下表是 Python2 与 Python3 相似的方法
| Python2 | Python3 |
|---|---|
| iteritems() | items() |
| iterkeys() | keys() |
| itervalues() | values() |
倘若阁下发现在下错误之处,还请不吝赐教!谢谢!
[Python3 填坑] 012 字典的遍历在 Python2 与 Python3 中区别的更多相关文章
- [Python3 填坑] 006 “杠零”,空字符的使用
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 \0 是空字符,输出时看不到它,但它占 1 个字符的长度 2.2 \0 "遇八进制失效" 2.3 \0 与 '' 不 ...
- [Python3 填坑] 004 关于八进制
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 问题的解决 2.2.1 先说结论 2.2.2 八进制的用途 2.2.3 少废话,上例子 1. print( 坑的信息 ...
- [Python3 填坑] 009 深拷贝与浅拷贝
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python3.7 官方文档 2.2 赋值.切片与 copy() 分析 分析 分析 分析 2.3 copy 模块 分析 分析 2.4 小 ...
- [Python3 填坑] 001 格式化符号 & 格式化操作符的辅助指令
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python 格式化符号表 举例说明 (1) %c (2) %s 与 %d (3) %o (4) %x (5) %f (6) %e (7 ...
- [Python3 填坑] 005 如何“响铃”
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 问题的解决 1. print( 坑的信息 ) 挖坑时间:2019/01/08 明细 坑的编码 内容 Py004-2 ...
- [Python3 填坑] 003 关键字?保留字?预留字?
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 网上搜索 2.3 结论 2.4 后记 1. print( 坑的信息 ) 挖坑时间:2019/01/04 明细 坑的编 ...
- [Python3 填坑] 018 组装类的几个例子
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 MetaClass 举例 2.2 type 举例 2.3 MetaClass 举例 1. print( 坑的信息 ) 挖坑时间:2019 ...
- [Python3 填坑] 017 实例方法、静态方法、类方法的区别
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 先上例子 2.2 分析 1. print( 坑的信息 ) 挖坑时间:2019/04/07 明细 坑的编码 内容 Py024-1 实例方法 ...
- [Python3 填坑] 016 对 __getattr__ 和 __setattr__ 举例
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 __getattr__ 2.2 __setattr__ 1. print( 坑的信息 ) 挖坑时间:2019/04/07 明细 坑的编码 ...
随机推荐
- hdu2955_Robberies 01背包
有一个强盗要去几个银行偷盗,他既想多投点钱,又想尽量不被抓到.已知各个银行 的金钱数和被抓的概率,以及强盗能容忍的最大被抓概率.求他最多能偷到多少钱? 解:以概率为价值 问价值在合理范围背包的最大容量 ...
- 10年前文章_使用opkg 管理软件更新
为避免调试过程中每次都要刷写flash, 可以使用opkg 管理工具来实现单个包更新 一.首先配置http 服务器,使之能访问生成的ipkg 格式的包,例如你的工作目录在/home/xxx/build ...
- linux中未实现的系统调用
afs_syscall, break, fattach, fdetach, ftime, getmsg, getpmsg, gtty, isastream, lock, madvise1, mpx, ...
- 将pip源更换到国内镜像
将pip源更换到国内镜像用pip管理工具安装库文件时,默认使用国外的源文件,因此在国内的下载速度会比较慢,可能只有50KB/s.幸好,国内的一些顶级科研机构已经给我们准备好了各种镜像,下载速度可达2M ...
- nginx图片过滤处理模块http_image_filter_module
nginx图片过滤处理模块http_image_filter_module安装配置笔记 http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54 ...
- python如何导入自定义文件和模块$PYTHONHOME$\Lib\site-packages 方法
python 中如何引用自己创建的源文件(*.py)呢? 也就是所谓的模块. 假如,你有一个自定义的源文件,文件名:saySomething.py .里面有个函数,函数名:sayHello.如下图: ...
- HDU 5687 Problem C ( 字典树前缀增删查 )
题意 : 度熊手上有一本神奇的字典,你可以在它里面做如下三个操作: 1.insert : 往神奇字典中插入一个单词 2.delete: 在神奇字典中删除所有前缀等于给定字符串的单词 3.search: ...
- 进阶4:hive 安装
安装包: apache-hive-2.1.1-bin.tar.gz 安装步骤: 1.上传 apache-hive-2.1.1-bin.tar.gz 到linux; 2.解压文件: tar zxvf ...
- linux/Unix下的vim/vi指令的使用方法
概述 以下这篇文章介绍的是关于vim的使用方法,由于我本身对linux没有太多的研究,写下的这篇文章纯属是在实际中经常使用vim指令,想通过这篇文章记录下来,方便以后使用时查找方便.个人认为,对于普通 ...
- VMware 15 安装 macOS 10.14优质教程链接集合
https://www.jianshu.com/p/25d2d781bd98 https://mp.weixin.qq.com/s/91Qc7L7E0xbVYXUcReUb_w https://blo ...