Python 循环时如何获取字典的最后一项
我知道Python 循环时如何获取字典的最后一项,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我知道词典与列表不同,并且“最后”项在词典上下文中没有意义。但是我有一个循环,它根据用户输入在字典上迭代,然后如果用户输入等于其中一个键,它会显示一条消息,否则,它会检查这是否是字典的最后一项,如果是,则会显示一条消息,说“没有找到这样的字典的键。请修改您的条目。” 代码如下: dic = {"Name" : "mostafa", "job" : "Animator", "Likes" : 'Smoking', 'target' : 'nothing'}; inp = input("Plea
词典
与列表不同,并且“最后”项在词典
上下文中没有意义。但是我有一个循环,它根据用户输入在字典上迭代,然后如果用户输入等于其中一个键,它会显示一条消息,否则,它会检查这是否是字典的最后一项,如果是,则会显示一条消息,说“没有找到这样的字典的键。请修改您的条目。”
代码如下:
dic = {"Name" : "mostafa", "job" : "Animator", "Likes" : 'Smoking', 'target' : 'nothing'};
inp = input("Please eneter a key to show: \r\n");
for item in dic :
if(inp == item) :
print("Thanks, found the key.");
break;
# Here I need an IF to check whether this is the last key or not
您可以使用枚举()
:
此外,执行以下操作更容易检查关键字是否在字典中:
if inp in dic:
print("The key is in the dictionary")
您可以使用枚举()
:
此外,执行以下操作更容易检查关键字是否在字典中:
if inp in dic:
print("The key is in the dictionary")
您可以执行以下操作:
打印(dic.get(inp,“没有这样的字典的键”)您可以按如下操作:
print(dic.get(inp,“没有这样的字典的键”)在字典上循环以测试是否有键,这会破坏首先使用字典的好处。使用起来要快得多
if inp in dic:
# Found it.
如果仅当循环未被中断
终止时才需要运行某些代码,则可以使用else
子句:
for item in thing:
if condition:
break
else:
thing_that_only_happens_if_you_dont_break()
在字典上循环以测试是否存在密钥,首先会破坏使用字典的好处。使用起来要快得多
if inp in dic:
# Found it.
如果仅当循环未被中断
终止时才需要运行某些代码,则可以使用else
子句:
for item in thing:
if condition:
break
else:
thing_that_only_happens_if_you_dont_break()
我在写一个解决方案,但是,我认为在字典结构中这样做没有意义,因为字典键没有顺序。你为什么要这样做
编辑:也许你想知道最后添加的键?也许您可以查看订购的信息()
编辑二:或者你可以检查:如果输入在dic中,那么检查索引是否等于len(dic)-1我正在写一个解决方案,但是,我认为在字典结构中这样做没有意义,因为字典键没有顺序。你为什么要这样做
编辑:也许你想知道最后添加的键?也许您可以查看订购的信息()
编辑二:或者你可以检查:如果输入是在dic中,那么检查索引是否等于len(dic)-1
在Python3.7中,dict
有一个插入顺序,保持了项目最初插入的顺序
因此,dict中的最后一项是dict[list(dict.keys())[-1])]
范例
或
所以在你的循环中:
if key == next(reversed(dic.keys())):
只是一个老问题的更新:
在Python3.7中,dict
有一个插入顺序,保持了项目最初插入的顺序
因此,dict中的最后一项是dict[list(dict.keys())[-1])]
范例
或
所以在你的循环中:
if key == next(reversed(dic.keys())):
谢谢,这就是我要找的。但是很抱歉,为什么要从长度中减去1?不是因为我从零开始吗?是的,所以如果字典中有三个元素,索引将是0、1和2。所以最后一个索引是2(3-1)。当然,使用第二个方法更快,但是当我实现它时,它总是说它没有找到,直到我输入一个键值而不是一个值…谢谢,这就是我所寻找的。但是很抱歉,为什么要从长度中减去1?不是因为我从零开始吗?是的,所以如果字典中有三个元素,索引将是0、1和2。最后一个索引是2(3-1)。当然,使用第二个方法更快,但当我实现它时,它总是说它没有找到,直到我输入一个键值而不是一个值…为什么循环<代码>如果dic中有inp:
应该是您所需要的全部。非常感谢。对于我这个新手来说,尝试各种方法是一种很好的学习方式learning@Matthias可能有人出于其他原因想要循环,但仍然想对最后一个循环做一些特定的事情item@simplename:在Python3.7之前,dict中没有“最后”项,即使如此,为最后一项做一些事情也是非常罕见的。在这种情况下,很明显,循环是毫无意义的,就像在大多数情况下一样。为什么循环<代码>如果dic中有inp:应该是您所需要的全部。非常感谢。对于我这个新手来说,尝试各种方法是一种很好的学习方式learning@Matthias可能有人出于其他原因想要循环,但仍然想对最后一个循环做一些特定的事情item@simplename:在Python3.7之前,dict中没有“最后”项,即使如此,为最后一项做一些事情也是非常罕见的。在这种情况下,很明显,循环是没有意义的,就像在大多数情况下一样。