use*_*162 11 python dictionary
我有一个字典列表,如果关键价格值等于'',我想更新关键'价格'的值为0
data=[a['price']=0 for a in data if a['price']=='']
Run Code Online (Sandbox Code Playgroud)
有可能做那样的事吗?我也尝试过
a.update({'price':0})
Run Code Online (Sandbox Code Playgroud)
但是效果不好......
Mar*_*zer 20
赋值是语句,语句在列表推导中不可用.只需使用正常的for循环:
data = ...
for a in data:
if a['price'] == '':
a['price'] = 0
Run Code Online (Sandbox Code Playgroud)
为了完整起见,你也可以使用这种可憎的东西(但这并不意味着你应该这样做):
data = ...
[a.__setitem__('price', 0 if a['price'] == '' else a['price']) for a in data]
Run Code Online (Sandbox Code Playgroud)
小智 8
如果您使用的是 dict.update 不要将它分配给原始变量,因为它返回 None
[a.update(price=0) for a in data if a['price']=='']
Run Code Online (Sandbox Code Playgroud)
没有分配将更新列表...
| 归档时间: |
|
| 查看次数: |
11981 次 |
| 最近记录: |