老师你好,在使用字典的keys()方法时,返回的是dict_items([1,2,3……])等,不能索引但可以迭代,是什么原理?

来源:4-6 dict 字典

装甲梅耶

2017-10-07

D = {0:'a',1:'b',2:'c',3:'d'}
dict1 = D.keys()
print(dict1)           #输出:dict_keys([0, 1, 2, 3])    这是什么?  
# print(dict1[1])      #报错,说是不支持索引
print(list(dict1)[1])  #输出:1  也就是list()把dict_keys([0, 1, 2, 3]) 转化为列表了
for x in dict1:
    print(x,end=" ")   #输出了:0 1 2 3  上边证明它不是列表了,这里又不需要list()转化就可以迭代,是什么原因啊?


写回答

2回答

7七月

2017-10-07

因为dict_itmes 本身是一个特殊的类型表示字典key的集合,本身dict_items就不能用索引访问,这是类型的设计。既然你取了items,没有理由要依靠特定的索引吧。

1
0

7七月

2017-10-07

要索引就转换成list

0
0

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14447 学习 · 4438 问题

查看课程