我想删除某个键为 None
的字典。
例如,我有一个字典列表,例如:
my = [{"mydata": ""}, {"mydata": "hello"}]
我所做的是:
for my_list in my:
if my_list["mydata"] == "":
my_list.clear()
但这给出了:
[{}, {'mydata': 'hello'}]
我希望删除 {}
空字典,我该如何实现?
我想要的结果格式是:
{"my_data": "hello"}
答案 0 :(得分:2)
试试这个:
my = [{"mydata":""},{"mydata":"hello"}]
my2=[x for x in my if x['mydata']!='']
print(my2)
答案 1 :(得分:1)
根据您的用例尝试使用 any
或 all
进行列表推导。
在您给出的示例中,如果 dict
中只有一个键,那么 all
和 any
不会有太大区别。
my = [{"mydata":""},{"mydata":"hello"}]
my_new = [i for i in my if any(i.values())] #[{'mydata': 'hello'}]
答案 2 :(得分:1)
使用列表理解
my = [{"mydata": ""}, {"mydata": "hello"}, {"mydata": "bye"}, {"mydata": ""}]
new_my = [{x: y} for i in my for x,y in i.items() if y != ""]
print(new_my)
[{'mydata': 'hello'}, {'mydata': 'bye'}]
答案 3 :(得分:0)
使用 (50+20+100)/(100+200+240)*100
而不是 remove()
,并迭代列表的副本以避免出现问题
clear()