鱼C论坛

 找回密码
 立即注册
查看: 1595|回复: 2

[已解决]字典中的item是以怎样的方式存储的?

[复制链接]
发表于 2018-4-3 21:48:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在小甲鱼给的文件系统的作业中,使用for语法打印字典中的项目出现了:
for each in size_dict.items():
        print("%s [%dBytes]"%(each[0], each[1]))
这里的each表示的应该是字典中的一个item,也就是一组键值对。
为什么键值对可以用索引号的方式引用,字典中的项目是使用元组的方式存储的吗?希冀大神解惑

在shell环境中试着操作:
a = { "XiaoJiaYu": 100}
b = a.items()
b[0]
结果报错显示:TypeError: 'dict_items' object does not support indexing(这种类型不支持索引)
越发疑惑~~~
最佳答案
2018-4-3 22:15:45
本帖最后由 D_Soap 于 2018-4-3 22:24 编辑

此方法返回一个元组对列表.

若硬是要访问,可以
v=list(b)
把该元祖对列表变成元素为元祖的列表
v[0]访问出来的为:('XiaoJiaYu', 100)
v[0][0]访问出来的为:'XiaoJiaYu'
参考资料:
https://stackoverflow.com/questions/17431638/get-typeerror-dict-values-object-does-not-support-indexing-when-using-python
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-3 22:15:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 D_Soap 于 2018-4-3 22:24 编辑

此方法返回一个元组对列表.

若硬是要访问,可以
v=list(b)
把该元祖对列表变成元素为元祖的列表
v[0]访问出来的为:('XiaoJiaYu', 100)
v[0][0]访问出来的为:'XiaoJiaYu'
参考资料:
https://stackoverflow.com/questions/17431638/get-typeerror-dict-values-object-does-not-support-indexing-when-using-python
1522764795(1).jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-4 09:01:11 | 显示全部楼层
字典的items()方法返回的并不是一个可以直接索引的对象
但是可以当作一个迭代器来依次取出其内容
而且其里面的每一组元素都是可以被索引的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-10 04:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表