Python 2.7 Python2.7-如何访问字典中第一次出现的值并对其进行更改?

Python 2.7 Python2.7-如何访问字典中第一次出现的值并对其进行更改?,python-2.7,dictionary,key-value,Python 2.7,Dictionary,Key Value,我刚刚开始使用在线资源和免费在线大学课程学习Python(2.7)和计算机编程。(我只呆了几个星期) 我一直在做一个项目来应用我学到的每一件新东西 我有一个列表,我想保留一个特定的长度(例如6): 然后我学习了如何使用字典,并想将此列表更改为字典: list = {1:"item", 2:"second_item", 3:"third_item", 4:"empty", 5:"empty", 6:"empty"} 我想通过引用第一次出现的“empty”将内容添加到“list”中,当时它仍然是一

我刚刚开始使用在线资源和免费在线大学课程学习Python(2.7)和计算机编程。(我只呆了几个星期)

我一直在做一个项目来应用我学到的每一件新东西

我有一个列表,我想保留一个特定的长度(例如6):

然后我学习了如何使用字典,并想将此列表更改为字典:

list = {1:"item", 2:"second_item", 3:"third_item", 4:"empty", 5:"empty", 6:"empty"}
我想通过引用第一次出现的“empty”将内容添加到“list”中,当时它仍然是一个list,我使用:

if "empty" in list:                                   
    addeditem=inventory.index("empty")
    list[addeditem]="newitem"
    print "Added newitem to list!"
else:
    print "list is full!"
如果我试图用字典来做这件事,那是行不通的。我相信这是因为当我在list:中使用
if“empty”时,当我想引用第一个出现的“empty”作为值,然后将该值更改为“newitem”时,它认为我正在尝试引用一个键

我有一个解决方法,如下所示:

    if list[1]=="empty":                 
        list[1]="newitem"
        print "Added newitem to list!"
    elif list[2]=="empty":
        list[2]="newitem"
        print "Added newitem to list!"
    elif list[3]=="empty":
        list[3]="newitem"
        print "Added newitem to list!"
    elif list[4]=="empty":
        list[4]="newitem"
        print "Added newitem to list!"
    elif list[5]=="empty":
        list[5]="newitem"
        print "Added newitem to list!"
    elif list[6]=="empty":
        list[6]="newitem"
        print "Added newitem to list!"
    else:
        print "list is full!"
这种方法似乎需要做很多工作,因为使用列表要容易得多。我想知道是否有更好的方法将内容添加到字典中,不是在特定键处,而是在特定值的第一次出现时。我想保持钥匙不变。 我希望我提出的问题足够具体


如果你需要我解释更多,请让我知道。我还在学习字典,但到目前为止我还没有找到更好的方法。再说一次,我只是在我的第一个月的学习编程的任何形式,所以我真的很感谢在回答这种问题的耐心

这种方法的问题是字典中没有顺序的概念。字典是散列,插入不同键的顺序可能与这些键最终被散列的顺序无关。对于您已经编写的代码,您可以使用一个循环来优化它,而不是使用一个布尔标记来标记是否可以添加列表,我在下面编写了一个示例。然而,如果您需要维护某种顺序,那么字典可能不是使用任何一种方式的正确数据结构

added = False
for i in range(1,7):
    if list[i] == "empty":
        list[i] = "newitem"
        print "Added newitem to list!"
        added = True
        break
if not added:
    print "list is full!"

是什么让你决定把它转换成dict,而这个列表看起来运行得很好?更重要的是,我一直在尝试将我学到的新东西应用到我一直在做的项目中。我还认为,如果字典中的项目有键,那么我会更容易引用它们,而不是通过记住它们所在的槽[0,1,2,3]来引用列表中的项目。但是,如果你使用1,2,3等作为字典的键,这没有什么区别,因为你仍然必须知道[1,6]中的哪个键是正确的。今天我学到了一些新东西,谢谢!这似乎会更好地工作,并且比我的解决方法少了很多文本。谢谢,我试试看!
added = False
for i in range(1,7):
    if list[i] == "empty":
        list[i] = "newitem"
        print "Added newitem to list!"
        added = True
        break
if not added:
    print "list is full!"