我有一本字典,其键是字符串,值是数字。我还有另一个字符串列表。我想通过删除所有键,值对(如果键是字符串列表中的一个字符串)来过滤字典。
例如,dict={"good":44,"excellent":33,"wonderful":55}, randomList=["good","amazing","great"]
然后该方法应给出newdict={"excellent":33,"wonderful":55}
我想知道是否有一种方法可以使用很少的代码来做到这一点。有没有办法快速做到这一点?
答案 0 :(得分:1)
这段简单的代码满足您的需求
Project::where('user_id', $uid)
->orWhere('user_id', 0)
->where(function($q) {
$table_2_data = ["2","3"];
query here
})
->orderBy('title', 'asc')
->get();
答案 1 :(得分:0)
遍历字典并删除列表中没有的键/值对:
d = {'foo': 0, 'bar': 1, 'foobar': 2}
list_of_str = ['foo', 'bang']
{k:v for k, v in d.items() if k not in list_of_str}
输出:
Out[34]: {'bar': 1, 'foobar': 2}
或者如果您的list_of_str
较小,则速度会更快:
d = {'foo': 0, 'bar': 1, 'foobar': 2}
list_of_str = ['foo', 'bang']
for s in list_of_str:
try:
del d[s]
except KeyError:
pass
输出:
Out[41]: {'bar': 1, 'foobar': 2}