- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
考虑以下默认字典:
data = defaultdict(list)
data['key1'] = [{'check': '', 'sth1_1':'k1', 'sth1_2':'k2'}]
data['key2'] = [{'check': '0', 'sth2_1':'k3'}, {'check': 'asd', 'sth2_2':'k4'}, {'check':'1', 'sth2_3':'k5'}]
等等..
我想从 data
字典(来自 data.values())中筛选出值 'check' != '1'
对于上面的给定输入,我期望:
defaultdict(<type 'list'>, {'key2': [{'sth2_3': 'k5', 'check': '1'}])
到目前为止我有:
for k, v in data.items():
print "k, v: ", k, v
v[:] = [d for d in v if d.get('check') == '1']
但它给了我不需要的输出 'key1': []
:
defaultdict(<type 'list'>, {'key2': [{'sth2_3': 'k5', 'check': '1'}], 'key1': []})
解决该问题的最佳 pythonic 方法是什么?
最佳答案
这将在适当的地方完成。如果您可以制作一本新词典,它可以稍微清理一下。
for key in data.keys():
new_list = []
for val in data[key]:
if val['check'] == '1':
new_list += [val]
if new_list:
data[key] = new_list
else:
del data[key]
如果你真的想使用(嵌套的)理解,这也行:
d = {}
d = {key: [inner_dict for inner_dict in list_of_dicts if inner_dict['check'] == '1'] for key, list_of_dicts in data.iteritems()}
d = {key: val for key,val in d.iteritems() if val}
关于python - 根据值过滤 defaultdict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35165864/
从文件中读取并清理的文本: ['the', 'cat', 'chased', 'the', 'dog', 'fled'] 挑战是返回一个字典,其中每个单词作为值,可以跟随它的单词作为键,并计算它跟随它
使用 this answer ,我创建了 defaultdict 的 defaultdict。现在,我想把那个嵌套很深的 dict 对象变回一个普通的 python dict。 from collec
我的应用程序说参数必须是可调用的或无类型有什么特别的原因吗?我很确定这就是您使用 defaultdict 作为其值实例化 defaultdict 的方式。 dict = defaultdict(def
我想实现一个类似 dict 的数据结构,它具有以下属性: from collections import UserDict class TestDict(UserDict): pass tes
我有两个 defaultdict : defaultdict(, {'a': ['OS', 'sys', 'procs'], 'b': ['OS', 'sys']}) defaultdict(, {'
我有一个defaultdict(Set): from sets import Set from collections import defaultdict values = defaultdict(
我正在使用 defaultdict 来存储数百万个短语,所以我的数据结构看起来像 mydict['string'] = set(['other', 'strings'])。它似乎适用于较小的集合,但当
所以 defaultdict documentation提到,如果缺少某个项目,则 default_factory 返回的值“将插入字典中作为键,然后返回。”这在大多数情况下都很棒,但在这种情况下我真
我有一个默认的列表列表,但我基本上想这样做: myDefaultDict = filter(lambda k: len(k)>1, myDefaultDict) 除了它似乎只适用于列表。我能做什么?
这可能是一个愚蠢的问题,但是:我的代码运行良好,直到我尝试添加 ml.我尝试了几种方式但是 init_dict = [] with open("example.csv", "r") as new_da
我正在尝试将列表递归地转换为嵌套字典,如下所示:- 给定输入:- parse_list = ['A','B','C','D'] 所需输出:- data = [ {'name': 'A',
我有一个名为“n”的字典,其中有一个键值关系(字典中的字典)。 此处的 key 将是tenant_id (b77865b66fd544e0841aa7dbca8bdc97, 7b73b9644e824
我有一个 Excel 数据集列表,其中包含以下某些信息: Category Subcategory Name Main Dish Noodle Tomato Noodl
我有以下内容: a = [{ "_id" : { "reportId" : "5a27cda63fff647c33a14b31" }, "amount" : 3000 }, { "_id"
这很简单: 'foo {bar}'.format(**{'bar': 0}) 这不起作用,产生一个 KeyError: from collections import defaultdict d =
我有这个: dict1 = defaultdict(lambda:defaultdict(list)) dict1['rl1']['sh1'] = ['a','b'] dict1['rl1']['sh
我正在尝试在 python 中使用 defalultdict 和不赋值的行为 数据如下: data = {'APPLaunch_ftrace': [63.3, 24.5, 8.4, 2.3, 0.9,
我有一个字典列表。我们称它为:list_of_dict。列表中的词典采用以下形式: {'a' : 1, 'b' : 5, 'c' : 3, 'd' : 6} 和 {'a' : 3, 'f' : 2,
我想使用关键字解包运算符 ** 格式化和打印字典中的数据。 格式字符串可能引用了很多关键字,而字典可能没有所有需要的关键字。对于缺少的键,我想使用字符串“N/A”作为默认值。 我想要一个聪明的解决方案
考虑以下默认字典: data = defaultdict(list) data['key1'] = [{'check': '', 'sth1_1':'k1', 'sth1_2':'k2'}] data
我是一名优秀的程序员,十分优秀!