如何在列表字典中删除列表元素?

克里斯

我正在尝试从列表字典中过滤掉讨厌的None值。这是一个示例字典:

parsed_data = {'DATA1': [None, None, None, None, None, None, None, None, None, None, None,
     None, None, None, None, None, None, None, None, '0.17998362', '0.06388072',
     '0.02091766', None, '0.00602364', '0.03171121', None, '1.39579976', '0.16731957',
     '0.21564664', '0.03516583'], 'DATA2': [None, None, None, None, None, None, None,
     None, None, None, None, None, None, None, None, None, None, None, None, None,
     None, None, None, None, None, None, None, None, None, None, None, None], 'DATA3':
     [None, None, None, None], 'DATA4': ['0.18406565', '0.06776296', '0.14278403',
     '0.11962064', '0.00998447']}

我以为这个字典理解会起作用,但是如果在列表中的任何位置都找不到None,它将删除整个键

filtered = {x:y for x,y in parsed_data.items() if len(y)>0 and None not in y}

我还尝试了使用嵌套列表理解来进行字典理解,但是它看上去很疯狂,只是看着它就被大脑融化了一点。

帕德拉克·坎宁安(Padraic Cunningham)

您需要遍历列表中的元素以过滤无内容并保留所有其他内容,如果要更改原始内容,只需更新每个列表即可:

for v in parsed_data.values():
        v[:] = (ele for ele in v if ele is not None)

或者,如果您想要一个新的字典:

 new = {k : [ele for ele in v if ele is not None] for k,v in parsed_data.items()}

两者都会给你:

{'DATA1': ['0.17998362',
           '0.06388072',
           '0.02091766',
           '0.00602364',
           '0.03171121',
           '1.39579976',
           '0.16731957',
           '0.21564664',
           '0.03516583'],
 'DATA2': [],
 'DATA3': [],
 'DATA4': ['0.18406565',
           '0.06776296',
           '0.14278403',
           '0.11962064',
           '0.00998447']}

如果您使用的是python 3,则可以将None组合过滤器用于第一个逻辑ne

for v in parsed_data.values():
        v[:] = filter(None.__ne__, v)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在列表字典中获取特殊值

来自分类Dev

如何在javascript中创建列表字典

来自分类Dev

如何在tableview中插入属性列表字典

来自分类Dev

如何删除字典列表中的元素

来自分类Dev

获取列表字典中包含更多元素的列表

来自分类Dev

如何删除特定列表中不存在的列表字典中的项目?

来自分类Dev

在列表字典中搜索

来自分类Dev

如何基于列表中的元素从Python字典中删除元素?

来自分类Dev

如何在python中的字典元素列表中访问字典?

来自分类Dev

如何从数据框中的两列创建列表字典

来自分类Dev

从字典中的列表中删除元素

来自分类Dev

如何在字典python中访问列表内的元素?

来自分类Dev

如何在Python中将元素追加到字典中的列表

来自分类Dev

如何在以列表为值的字典中搜索多个元素?

来自分类Dev

如何在字典中将元素添加到列表中?

来自分类Dev

如何在python中的字典列表中计算元素?

来自分类Dev

声明列表字典

来自分类Dev

实现列表字典

来自分类Dev

声明列表字典

来自分类Dev

从Python中的字典列表创建列表字典

来自分类Dev

在VBA中创建列表字典

来自分类Dev

列表字典中的所有组合

来自分类Dev

在VBA中创建列表字典

来自分类Dev

列表字典中的数据框

来自分类Dev

在列表字典中搜索值

来自分类Dev

如何从元组列表字典的所有键中输出所有第一个元素?

来自分类Dev

如何从列表中删除元素?

来自分类Dev

列表字典到字典

来自分类Dev

从字典值(列表列表)中删除元素