我很难弄清楚Python字典中最后一个键的语法是什么。我知道对于Python列表,可以说这是表示最后一个:
list[-1]
我也知道可以按如下方式获取字典键的列表:
dict.keys()
但是,当我尝试使用逻辑代码时,它不起作用:
dict.keys(-1)
它说密钥不能接受任何参数,并且给出了1。如果键不能使用args,那么我怎么能表示我想要列表中的最后一个键呢?
XXXXX 我的假设是Python字典按照将最新项目最后添加到字典中的顺序排序。出于这个原因,我想访问字典中的最后一个键.XXXXX
我现在被告知字典键根据添加时间而不按顺序排列。那我怎么能选择最近添加的密钥呢?
答案 0 :(得分:33)
如果广告订单很重要,请查看collections.OrderedDict
:
OrderedDict是一个记住首次插入密钥的顺序的字典。如果新条目覆盖现有条目,则原始插入位置保持不变。删除一个条目并重新插入它将把它移到最后。
In [1]: from collections import OrderedDict
In [2]: od = OrderedDict(zip('bar','foo'))
In [3]: od
Out[3]: OrderedDict([('b', 'f'), ('a', 'o'), ('r', 'o')])
In [4]: od.keys()[-1]
Out[4]: 'r'
In [5]: od.popitem() # also removes the last item
Out[5]: ('r', 'o')
答案 1 :(得分:31)
好像你想这样做:
dict.keys()[-1]
dict.keys()
返回字典键的列表。获得列表后,-1索引允许您获取列表的最后一个元素。
由于字典是无序的,因此获取字典的最后一个字段是没有意义的。
也许您以前想要对它们进行排序。它看起来像那样:
sorted(dict.keys())[-1]
答案 2 :(得分:16)
在字典中询问“last”键是没有意义的,因为字典键是无序的。如果你愿意,你可以获得密钥列表并获取最后一个密钥,但这在任何意义上都不是“字典中的最后一个密钥”。
答案 3 :(得分:5)
sorted(dict.keys())[-1]
否则keys
只是无序列表,最后一个没有意义,可以在各种python版本上有所不同。
答案 4 :(得分:4)
绝对有理由想要OrderedDict的最后一个键。我在编辑时使用有序的dict列出我的用户。我正在使用AJAX调用来更新用户权限和添加新用户。由于AJAX在检查权限时触发,我希望我的新用户在显示的列表(最后)中保持相同位置以方便我直到我重新加载页面。每次脚本运行时,它都会重新排序用户词典。
这一切都很好,为什么需要最后一个条目?因此,当我为我的软件编写单元测试时,我想确认用户保持在最后位置,直到重新加载页面。
dict.keys()[-1]
完美地执行此功能(Python 2.7)。
答案 5 :(得分:3)
由于python 3.7 dict总是有序(插入顺序),
因为字典的python 3.8 keys(),values()和items()返回:可以反转的视图:
获取最后一个密钥:
next(reversed(my_dict.keys()))
values()和items()相同
PS,以获取第一把钥匙: next(iter(my_dict.keys()))
答案 6 :(得分:1)
#this 将返回字典的最后一个元素 dictObj[len(dictObj.keys()) - 1]
答案 7 :(得分:0)
您可以执行以下功能:
def getLastItem(dictionary):
last_keyval = dictionary.popitem()
dictionary.update({last_keyval[0]:last_keyval[1]})
return {last_keyval[0]:last_keyval[1]}
这不会更改原始词典! 发生这种情况是因为popitem()函数返回一个元组,我们可以利用它为我们服务!!
答案 8 :(得分:0)
确实需要获取字典的最后一个元素,例如,确认是否已将最新元素附加到字典对象上。
我们需要将字典键转换为列表对象,并使用索引-1来打印出最后一个元素。
mydict = {'John':'apple','Mat':'orange','Jane':'guava','Kim':'apple','Kate': 'grapes'}
mydict.keys()
输出:dict_keys([''John','Mat','Jane','Kim','Kate'])
list(mydict.keys())
输出:['John','Mat','Jane','Kim','Kate']
list(mydict.keys())[-1]
输出:“凯特”
答案 9 :(得分:0)
在python 3.6中,我从以下代码中获取了最后一个键的值
list(dict.keys())[-1]
答案 10 :(得分:0)
#to find last key:
dict = {'a':1,'b':2,'c':3,'d':4}
print(dict)
res = list(dict.key())[-1]
print(res)
#to find last value:
dict = {'a':1,'b':2,'c':3,'d':4}
print(dict)
res = list(dict.values())[-1]
print(res)
答案 11 :(得分:-2)
是的,有:len(data)-1
。
对于第一个元素:0