说我有一本这样的字典:
const Knex = require('knex');
const { host, user, password, database, port } = require('settings')
const knex = Knex({
client: 'pg',
connection: { host, user, password, database, port },
pool: { min: 0, max: 200 }
});
是否可以从字典中删除像Knex.raw(sql, args)
这样的词对?
我已经知道d = {'ben' : 10, 'kim' : 20, 'bob' : 9}
了,但是即使值不是('bob',9)
之外的那对也将删除。
现在我唯一能想到的就是这样:
d.pop('bob')
但是有更简单的方法吗?可能根本不使用
答案 0 :(得分:4)
pop
还会返回该值,因此从性能角度(可能忽略不计)和从可读性角度来看,最好使用del
。
除此之外,我认为您可以做些更简单/更好的事情。
from timeit import Timer
def _del():
d = {'a': 1}
del d['a']
def _pop():
d = {'a': 1}
d.pop('a')
print(min(Timer(_del).repeat(5000, 5000)))
# 0.0005624240000000613
print(min(Timer(_pop).repeat(5000, 5000)))
# 0.0007729860000003086
答案 1 :(得分:0)
您要在此处执行两项操作
1)您要测试条件d ['bob'] == 9。 2)如果第一个答案为真,则要删除键和值。
因此,我们不能省略测试部分,该部分完全需要使用if。但是我们当然可以一站式完成。
d.pop('bob'),如果d.get('bob')== 9否则