首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中更新字典中键的值?

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

Stack Overflow用户
提问于 2016-12-09 23:28:17
回答 5查看 229.2K关注 0票数 31

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

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

代码语言:javascript
运行
复制
 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

 choice = raw_input("Do you want to sell?")
 if (choice in 'yesYES'):
        for i in range(n):
             print("Which book do you want to sell: ", book_shop)
             ch1 = raw_input("Enter your choice: ")
             if(book_shop.keys()[i] == ch1):
                    book_shop.keys()[i] = (book_shop.values()[i]-1)
                    break
        
 print(book_shop)

我想以最简单的方式解决这个问题。我是否遗漏了代码中的任何逻辑或任何一行?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-12-09 23:31:26

你可以直接从值中减去,只需引用键即可。在我看来这更简单。

代码语言:javascript
运行
复制
>>> books = {}
>>> books['book'] = 3       
>>> books['book'] -= 1   
>>> books   
{'book': 2}   

在您的案例中:

代码语言:javascript
运行
复制
book_shop[ch1] -= 1
票数 56
EN

Stack Overflow用户

发布于 2021-07-12 22:15:58

代码语言:javascript
运行
复制
d = {'A': 1, 'B': 5, 'C': 2}
d.update({'A': 2})

打印(%d)

代码语言:javascript
运行
复制
{'A': 2, 'B': 5, 'C': 2}
票数 5
EN

Stack Overflow用户

发布于 2018-02-03 03:33:33

您正在修改列表book_shop.values()[i],该列表未在字典中更新。无论何时调用values()方法,它都会为您提供字典中可用的值,而这里您并没有修改字典的数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41063744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档