Pat*_*sut -3 python dictionary list
简短的问题:为什么当我们做list(dict())时,return是dict的键,而不是值?因为我所知道的(关键,值)对,重要的是价值,而不是关键.关键它只是书中的一页.由于我们实际上并不想要页面,而是页面的内容,因此首先给我页面根本没有意义.
我相信它在某种程度上是有道理的.但是,请澄清一下.
谢谢!
编辑: 现在,因为(关键,价值)最相关的部分是对的价值.为什么不是dict 的iter方法返回值?
这个值是键值对中"最相关的部分",这是不正确的.这对本身就是相关的.这就是你使用dict的原因.如果您想要的只是值,那么您只需使用一个列表.
另外,正如@Blender正确地指出的那样,如果你知道密钥,你可以很容易地获得价值,而反之则不然.因此,如果你只想获得一个,那么获得密钥而不是价值肯定是有意义的.
尽管in迭代行为并不一定是链接的,但对于大多数其他容器类型而言,迭代容器会产生所有且仅有的项目item in container才是真的.我似乎记得在comp.lang.python上看到线程,在这一点上,人们说in在字典上做出的决定是按键工作的,并且使迭代工作像是in,很久以前就做了,然后保持向后兼容性,尽管我现在找不到任何参考资料.
理解为什么迭代overa dict产生键而不是键/值对是合理的.但答案就是"这就是dict API指定它的方式".迭代键值对(或单独的值,如果涉及到这一点)是非常容易的,通过单个方法调用,几乎不重要哪个是默认行为.