Python 将单个键值对从一个字典移动到另一个字典
我正在用python构建一个基本的商店,里面有一个物品及其价格的字典。我正在为购物车使用字典,我希望用户能够向购物车添加项目。为此,我的目标是将一个键和值从products字典复制到cart字典。我该怎么做Python 将单个键值对从一个字典移动到另一个字典,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我正在用python构建一个基本的商店,里面有一个物品及其价格的字典。我正在为购物车使用字典,我希望用户能够向购物车添加项目。为此,我的目标是将一个键和值从products字典复制到cart字典。我该怎么做 products = {"Pencil": 1, "Notebook": 2, "Backpack": 3, "Pens": 2, "Markers": 5, "Whiteboard": 30} cart = {} def addToCart(): productToAdd = i
products = {"Pencil": 1, "Notebook": 2, "Backpack": 3, "Pens": 2, "Markers": 5, "Whiteboard": 30}
cart = {}
def addToCart():
productToAdd = input("What would you like to add? ")
for k,v in products.items():
if productToAdd == k:
price = v
cart[productToAdd] = cart[v]
break
我必须使用原始输入,否则它不会接受字符串,如“Pencil”。 这就是复制键值对的方式
products = {"Pencil": 1, "Notebook": 2, "Backpack": 3, "Pens": 2, "Markers": 5, "Whiteboard": 30}
cart = {}
def addToCart():
productToAdd = raw_input("What would you like to add? ")
for k,v in products.items():
print(k)
if productToAdd == k:
cart[k] = v
break
addToCart()
print(cart)
注意python是区分大小写的,“pencil”和“pencil”不一样。
如果您确定产品必须是大写字母,您可以使用
productToAdd = input("What would you like to add? ").title()
您可以使用
dict.setdefault(key,default=None)
例如:
def addToCart():
productToAdd = input("What would you like to add? ")
cart[productToAdd]=products.setdefault(productToAdd, 'No such product')
假设用户将从该列表中选择项目(特别是从键),则:
将
cart[productToAdd]=cart[v]
更改为cart[productToAdd]=products[k]
您可以将cart[productToAdd]=cart[v]
更改为cart[productToAdd]=price
。不清楚您是想从products
中完全删除密钥,还是只是“复制”它及其值。它的python3不是python2,raw_输入
仅用于Python2良好捕获。我会按照给出的答案去做。如果用户提供的产品无效,则更安全。同意,问题更多的是在字典中插入一个新项目,而不是他如何从旧字典中提取新项目。@mtngt Ok,但我认为如果有办法将OPs代码从O(n)
提取到O(1)
,那么一定要注意,特别是如果那条路只有一半的长度。
def addToCart():
productToAdd = input("What would you like to add? ")
cart[productToAdd]=products.setdefault(productToAdd, 'No such product')
products = {"Pencil": 1, "Notebook": 2, "Backpack": 3, "Pens": 2, "Markers": 5,
"Whiteboard": 30}
cart = {}
def addToCart():
productToAdd = input("What would you like to add? ")
if not productToAdd.title() in products: # for removing caps confusion
print('No such item')
else: cart[productToAdd] = products[productToAdd]
>>> addToCart()
What would you like to add? Pencil
>>> cart
{'Pencil': 1}