当前位置: 首页 > 面试题库 >

如何在Python中更新字典中键的值?

段弘和
2023-03-14
问题内容

我有一本代表书店的字典。键代表书名,值代表当前书的份数。从商店出售书籍时,书籍的份数必须减少。

我已经编写了减少售书数量的代码,但是在更新后打印字典时,我得到的是初始字典,而不是更新的字典。

 n=input("Enter number of books in shop:")
 book_shop={} #Creating a dictionary book_shop
 #Entering elements into the dictionary
 for i in range(n):
     book_title=raw_input("Enter book title")
     book_no=input("Enter no of copies")
     book_shop[book_title]=book_no
 ch=raw_input("Do you want to sell")
 if (ch in 'yesYES'):
        for i in range(n):
             print"which book you want to sell??",book_shop
             ch1=raw_input("choice")
             if(book_shop.keys()[i]==ch1):
                    book_shop.keys()[i]=(book_shop.values()[i]-1)
                    break

 print book_shop

我想以最简单的方式解决问题。我是否错过了代码中的任何逻辑或任何行?


问题答案:

好吧,您可以仅通过引用键直接从值中减去。我认为这更简单。

>>> books = {}
>>> books['book'] = 3       
>>> books['book'] -= 1   
>>> books   
{'book': 2}

在您的情况下:

book_shop[ch1] -= 1


 类似资料:
  • 问题内容: 我想像这样从python字典输出键值对: 我以为我可以这样做: 但是很明显,这不是和不争论的方式。 问题答案: 您现有的代码只需进行一些调整。 是 关键,因此您只需要使用它: 您还可以获得包含键和值的迭代器。在Python 2中,返回(键,值)元组的列表,而返回提供相同值的迭代器: 在Python 3中,返回迭代器;要获得列表,您需要将迭代器传递给自己。

  • 我想从python字典中输出键值对,如下所示: 我想我可以这样做: 但是很明显,事情不是这样的,因为和不接受参数。

  • 问题内容: 从字典中删除键时,我使用: 有没有一种方法可以做到这一点? 问题答案: 要删除键而不管它是否在字典中,请使用以下两个参数的形式: 如果典中存在,则返回,None否则返回。如果第二个参数未指定(即)并且key不存在,则引发a。 要删除肯定存在的密钥,你还可以使用 如果关键字在字典中不存在,则会引发 。

  • 从字典中删除键时,我使用: 有没有一个简单的方法可以做到这一点?

  • 问题内容: 我有以下字典 我想获取字典列表中每个字典值“ KA20”和“ KA23”的键“ tmst”的总和。 您能对此提出建议吗? 问题答案: 您可以使用: 请注意,要正常工作,必须按分组键进行排序:

  • 问题内容: 假设我有这样的字典: 有没有一种方法可以切换键和值来获取: 问题答案: my_dict2 = dict((y,x) for x,y in my_dict.iteritems()) 如果您使用的是python 2.7或3.x,则可以改用字典理解: 编辑 如JBernardo的评论所述,对于python 3.x,您需要使用而不是