我有一个字典,它代表一家书店。键表示书名,值表示书的库存数量。当书店销售图书时,书的库存数量必须减少。
我已经编写了代码来减少已售书的库存数量,但在更新后打印字典时,我得到的是初始字典而不是更新后的字典。
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)
我希望能以最简单的方式解决问题。我的代码是否存在任何逻辑或者漏掉了某些行?
book_shop[ch1] -= 1
。 - Christian W.dict_keys()[index]
引用您的字典有点奇怪,可能与此有关。顺便说一下,在 Python3 中,这种类型的访问不再可能,因此最好直接通过键进行索引并直接修改值,就像我的答案中所示。 - Christian W.