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 中区别的更多相关文章

  1. [Python3 填坑] 006 “杠零”,空字符的使用

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 \0 是空字符,输出时看不到它,但它占 1 个字符的长度 2.2 \0 "遇八进制失效" 2.3 \0 与 '' 不 ...

  2. [Python3 填坑] 004 关于八进制

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 问题的解决 2.2.1 先说结论 2.2.2 八进制的用途 2.2.3 少废话,上例子 1. print( 坑的信息 ...

  3. [Python3 填坑] 009 深拷贝与浅拷贝

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python3.7 官方文档 2.2 赋值.切片与 copy() 分析 分析 分析 分析 2.3 copy 模块 分析 分析 2.4 小 ...

  4. [Python3 填坑] 001 格式化符号 & 格式化操作符的辅助指令

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python 格式化符号表 举例说明 (1) %c (2) %s 与 %d (3) %o (4) %x (5) %f (6) %e (7 ...

  5. [Python3 填坑] 005 如何“响铃”

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 问题的解决 1. print( 坑的信息 ) 挖坑时间:2019/01/08 明细 坑的编码 内容 Py004-2 ...

  6. [Python3 填坑] 003 关键字?保留字?预留字?

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 网上搜索 2.3 结论 2.4 后记 1. print( 坑的信息 ) 挖坑时间:2019/01/04 明细 坑的编 ...

  7. [Python3 填坑] 018 组装类的几个例子

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 MetaClass 举例 2.2 type 举例 2.3 MetaClass 举例 1. print( 坑的信息 ) 挖坑时间:2019 ...

  8. [Python3 填坑] 017 实例方法、静态方法、类方法的区别

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 先上例子 2.2 分析 1. print( 坑的信息 ) 挖坑时间:2019/04/07 明细 坑的编码 内容 Py024-1 实例方法 ...

  9. [Python3 填坑] 016 对 __getattr__ 和 __setattr__ 举例

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 __getattr__ 2.2 __setattr__ 1. print( 坑的信息 ) 挖坑时间:2019/04/07 明细 坑的编码 ...

随机推荐

  1. 关于sass、scss、less的概念性知识汇总

    这篇文章主要解答以下几个问题,供前端开发者的新手参考. 1.什么是Sass和Less? 2.为什么要使用CSS预处理器? 3.Sass和Less的比较 4.为什么选择使用Sass而不是Less? 什么 ...

  2. 查看jar包内容

    查看jar包内容 查看jar包内容的基本命令: jar tf jar-file 参数解释: The t option indicates that you want to view the table ...

  3. 【leetcode】1103. Distribute Candies to People

    题目如下: We distribute some number of candies, to a row of n = num_people people in the following way: ...

  4. vue addRoutes路由动态加载

    需求:增加权限控制,实现不同角色显示不同的路由导航 思路:每次登陆后请求接口返回当前角色路由 核心方法:vue-router2.2.0的addRoutes方法 + vuex 以下是我实现的获取菜单路由 ...

  5. token与安全

    http://ju.outofmemory.cn/entry/134189      关于 Token,你应该知道的十件事 https://blog.csdn.net/Fabulous1111/art ...

  6. 自定义控件 - 流式布局:TagFlowLayout

    在项目中需要用到流式布局的样式,此文学习鸿洋大神的FlowLayout控件,学习使用一下.出自 http://blog.csdn.net/lmj623565791/article/details/38 ...

  7. 九、MySQL报错( (1292, u"Truncated incorrect DOUBLE value: '424a000000066'") result = self._query(query))

    1.数据库sql语句:SELECT seat_id FROM netsale_order_seat os join netsale_order nor on os.order_code=nor.ord ...

  8. Redis安装启动,Redis Desktop Manager安装

    Window 下安装下载地址:https://github.com/MSOpenTech/redis/releases.Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情况选择,这 ...

  9. Maven中Jar包冲突,不让某个Jar包打入到工程中

     查看工程目前冲突的Jar包,这里以fastjson.jar为例: 打开工程的pom.xml,进入到Dependency Hierarchy页面搜寻目标Jar. 从这里我们可以看到目前工程中有2处导入 ...

  10. VMware 虚拟化编程(3) —VMware vSphere Web Service API 解析

    目录 目录 前文列表 VMware vSphere Web Services API VMware vSphere Web Services SDK vSphere WS API 中的托管对象 Man ...