我正在编写一个脚本,其中计算机将与自己玩一场战争游戏。我需要脚本只返回列表中第一个条目的值:
注意:这只是一个例子
test = {'hey':1, 'hi':2, 'hello':3, 'greetings':4, 'goodmorning':5, 'night':6}
for a in test:
print test[a]
#this returns
1
2
3
4
5
6
我希望这个脚本只返回第一个条目的值。
答案 0 :(得分:2)
由于字典是无序的,并且如果您依赖于使用字典,但是顺序对您很重要,则应考虑使用集合中的OrderedDict。这将根据插入保留字典的顺序。因此,如果您输入a, v, b
,它将按此顺序排列。
演示:
>>> from collections import OrderedDict
>>> d = OrderedDict()
>>> d['a'] = 1
>>> d['v'] = 1
>>> d['b'] = 1
>>> d
OrderedDict([('a', 1), ('v', 1), ('b', 1)])
根据要求获取第一个值,仅获取第一个条目:
d.items()[0][1]
答案 1 :(得分:2)
内置字典不是有序集合,因为您不能通过索引位置(即第1个,第2个等)访问值。
相反,您可以通过键(例如test['hey']
,test['hi']
等)访问它们。例如:
>>> test = { 'hey':1, 'hi':2, 'hello':3 }
>>> test[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 0
>>> test['hi']
2
您应该查看使用词典的Python docs。
如果您想通过 position (即索引)访问元素,那么您应该考虑使用列表或元组。
如果您希望在使用字典时保留顺序,则可能需要查看OrderedDict
类docs。
引用文档:
OrderedDict是一个记住键的顺序的dict 最先插入。如果新条目覆盖现有条目,则 原始插入位置保持不变。删除条目和 重新插入它将把它移到最后。
有关使用OrderedDict
的好例子,请参阅idjaw's post。