如果我在python中有一个dictonary,那么.keys和.values会以相同的顺序返回相应的元素吗?
例如
foo = {'foobar' : 1, 'foobar2' : 4, 'kittty' : 34743}
Run Code Online (Sandbox Code Playgroud)
对于它返回的键:
>>> foo.keys()
['foobar2', 'foobar', 'kittty']
Run Code Online (Sandbox Code Playgroud)
现在,foo.values()将返回元素的顺序与其对应的键相同吗?
Dav*_*ron 18
Python文档很难改进:
键和值以任意顺序列出,这是非随机的,在Python实现中各不相同,并且取决于字典的插入和删除历史.如果
items(),keys(),values(),iteritems(),iterkeys(),和itervalues()被称为中间没有修改的字典,列表会直接对应.这允许(value, key)使用zip(): pairs = zip(d.values(), d.keys()).相同的关系为对iterkeys()和itervalues()方法创建对:pairs = zip(d.itervalues(), d.iterkeys())为对提供相同的值.创建相同列表的另一种方法是pairs = [(v, k) for (k, v) in d.iteritems()]
所以,简而言之,"是"警告你不得在你的电话keys()和你的电话之间修改字典values().
| 归档时间: |
|
| 查看次数: |
4179 次 |
| 最近记录: |