如何將更新后的值重新放入我的購物車?我已經在檢查該產品是否存在于購物車中,并更新add_product.update(). 我只想將此新值(“新” “現有”數量)添加回cart_products. 列印新值的完全可運行的代碼。任何幫助表示贊賞。
我試過的
.更新() =
AttributeError: 'list' object has no attribute 'update'購物車產品.更新({'prod_quantity':matching_product[0]['prod_quantity']},{'prod_quantity':update_quantity})
.clear() =
IndexError: list index out of rangematch_product.clear()cart_products.append(add_product)
Python代碼
def product_exists(product: dict, cart: list):
added_id = product.get("prod_id")
in_cart = [existing_prod for existing_prod in cart if existing_prod.get("prod_id") == added_id]
if in_cart and len(in_cart) > 0:
return True, in_cart
return False, None
add_product = {'prod_id': 18, 'prod_name': 'Cat', 'prod_price': 30, 'prod_quantity': 2}
matching_product = [{'prod_id': 18, 'prod_name': 'Cat', 'prod_price': 30, 'prod_quantity': 1}]
cart_products = [{'prod_id': 15, 'prod_name': 'Penguin', 'prod_price': 40, 'prod_quantity': 1}, {'prod_id': 16, 'prod_name': 'Lion', 'prod_price': 20, 'prod_quantity': 2}, {'prod_id': 16, 'prod_name': 'Lion', 'prod_price': 20, 'prod_quantity': 4}, {'prod_id': 17, 'prod_name': 'Whale', 'prod_price': 20, 'prod_quantity': 1}, {'prod_id': 18, 'prod_name': 'Cat', 'prod_price': 30, 'prod_quantity': 1}]
exists, matching_product = product_exists(add_product, cart_products)
if exists: # If product exists in cart
update_quantity = matching_product[0]['prod_quantity'] add_product['prod_quantity']
print(update_quantity)
print(matching_product[0]['prod_name'])
add_product.update({'prod_quantity': update_quantity})
print(add_product)
# Code to update shopping cart with new quantity
else:
cart_products.append(add_product)
uj5u.com熱心網友回復:
你可以這樣做:
cart_products = [add_product if item['prod_id'] == add_product['prod_id'] else item for item in cart_products]
這將使 的元素保持cart_products原樣,只會替換prod_id與add_product. 在這種情況下,它將用 替換原始元素add_product。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/367729.html
標籤:蟒蛇-3.x
