Python字典键值重定义报错:如何用变量添加键值对?
问题:使用变量为字典添加键值对时出错
用户编写的Python代码无法运行,想了解如何用变量给字典添加键值对,代码如下:
BTC_ = {"Name": "BTC", "liq": 57000} ETH_ = {"Name": "ETH", "liq": 50000} BTC = BTC_['liq'] ETH = ETH_['liq'] ETHp = ETH / 50000 BTCp = BTC / 50000 BTC_.update['price': BTCp ] ETH_.update['price': ETHp ]
报错信息:
builtin_function_or_method object is not subscriptable
翻译:内置函数或方法对象不可下标访问
解决方法
错误原因
你调用字典的update()方法时用了方括号[],但update是一个函数,必须用圆括号()传递参数,且参数需要是字典格式。
修正后的代码
BTC_ = {"Name": "BTC", "liq": 57000} ETH_ = {"Name": "ETH", "liq": 50000} BTC = BTC_['liq'] ETH = ETH_['liq'] ETHp = ETH / 50000 BTCp = BTC / 50000 # 正确调用update方法,传递字典参数 BTC_.update({"price": BTCp}) ETH_.update({"price": ETHp}) # 查看结果 print(BTC_) # 输出: {'Name': 'BTC', 'liq': 57000, 'price': 1.14} print(ETH_) # 输出: {'Name': 'ETH', 'liq': 50000, 'price': 1.0}
更简洁的方式:直接下标赋值
如果只是添加单个键值对,不需要用update(),直接通过字典下标赋值更简单:
# 直接给新键赋值 BTC_['price'] = BTCp ETH_['price'] = ETHp
这种方式直接为字典的新键price绑定变量值,代码更直观。
内容的提问来源于stack exchange,提问作者Boufon
相关产品推荐
相关产品推荐

