def get_first_key(dictionary):
for key in dictionary:
return key
raise IndexError
first_key = get_first_key(colors)
first_val = colors[first_key]
如果您需要一个n-th键,那么类似地
def get_nth_key(dictionary, n=0):
if n < 0:
n += len(dictionary)
for i, key in enumerate(dictionary.keys()):
if i == n:
return key
raise IndexError("dictionary index out of range")
如果有人还在看这个问题,现在接受的答案已经过时了:
Since Python 3.7*这些字典是保序的,也就是说它们现在的行为与过去完全一样。不幸的是,仍然没有专门的方法来索引到字典的
keys()
/values()
,因此获取字典中的第一个键/值可以如下所示或者(这样可以避免将keys视图实例化为列表):
如果您需要一个
n
-th键,那么类似地(*CPython 3.6已经包含了有序的dict,但这只是一个实现细节。语言规范包括从3.7开始的有序听写。)
在Python 3.6之前(包括python3.6)的Python版本中,字典是无序的。如果您不关心条目的顺序,并且仍然希望通过索引访问键或值,则可以使用
d.keys()[i]
和d.values()[i]
或d.items()[i]
。(请注意,这些方法在Python2.x中创建了一个包含所有键、值或项的列表。因此,如果您需要这些键、值或项,请将其存储在一个变量中,以提高性能。)如果您确实关心条目的顺序,那么可以从Python 2.7开始使用^{} 。或使用配对列表
如果不需要通过密钥访问。(顺便问一下,为什么你的数字是字符串?)
在Python3.7中,普通的字典是有序的,因此您不再需要使用
OrderedDict
(但您仍然可以使用–它基本上是相同的类型)。Python 3.6的CPython实现已经包含了这个更改,但是由于它不是语言规范的一部分,所以在python3.6中不能依赖它。解决字典的一个要素就像坐在驴子上享受这段旅程。
根据Python的规则,字典是无顺序的
如果有的话
现在假设如果我像
dic[10] = "b"
那样走,那么它不会一直像这样添加可能是
或者
或者
或任何这样的组合。
所以经验法则是字典是无序的!
相关问题 更多 >
编程相关推荐