Python 如何检查字典列表中键的值是否都等于0
我有一个字典列表,如:Python 如何检查字典列表中键的值是否都等于0,python,list,dictionary,Python,List,Dictionary,我有一个字典列表,如: dicts = [dict1,dict2,dict3,dict4] dict1 = [{'name': 'blue', 'y': 1}, {'something else': 'red', 'y': 0}] dict2 = [{'name': 'green', 'y': 0}, {'name': 'purple', 'y':2}] dicts是字典的列表 如何检查dict1中的第一个和第二个y值是否都为0等。 如果dict同时具有y==0,则分配空数组 我也试过
dicts = [dict1,dict2,dict3,dict4]
dict1 = [{'name': 'blue', 'y': 1}, {'something else': 'red', 'y': 0}]
dict2 = [{'name': 'green', 'y': 0}, {'name': 'purple', 'y':2}]
dicts是字典的列表
如何检查dict1中的第一个和第二个y值是否都为0等。
如果dict同时具有y==0,则分配空数组
我也试过类似的方法,但每次都要重复这么多次
check=0
对于第1条中的el:
如果el['y']==0:
检查+=1
如果检查==len(dict1):
dict1=[]
对于dicts中的el:
对于el中的y:
如果全部(对于y.values()中的x,x==0):
el=[]
你需要这样的东西
dicts=[]
new_dicts=[]
for dic in dicts:
flag=0
for el in dic:
if el['y']!=0:
flag=1
break
if flag==0:
new_dict.append([])
else:
new_dict.append(dic)
以身作则
dict1 = [{'name': 'blue', 'y': 1}, {'something else': 'red', 'y': 0}]
dict2 = [{'name': 'green', 'y': 0}, {'name': 'purple', 'y':2}]
dict3 = [{'name': 'green', 'y': 0}, {'name': 'purple', 'y':0}]
dict4 = [{'name': 'green', 'y': 0}, {'name': 'purple', 'y':2}]
dicts = [dict1,dict2,dict3,dict4]
输出将是
[[{'name': 'blue', 'y': 1}, {'something else': 'red', 'y': 0}],
[{'name': 'green', 'y': 0}, {'name': 'purple', 'y': 2}],
[],
[{'name': 'green', 'y': 0}, {'name': 'purple', 'y': 2}]]
如果某个元素太复杂,请将任务和您的命令分开,以替换您选中的元素,使其具有所有{“y”:0}
:
dict1 = [{'name': 'blue', 'y': 1}, {'something else': 'red', 'y': 0}]
dict2 = [{'name': 'green', 'y': 0}, {'name': 'purple', 'y':2}]
dict3 = [{'name': 'green', 'y': 0}, {'name': 'purple', 'y':0}]
dict4 = [{'name': 'green', 'y': 0}, {'name': 'purple', 'y':2}]
dicts = [dict1,dict2,dict3,dict4]
for i,d in enumerate(dicts):
zeros = all(i["y"]== 0 for i in d) # check if all are 0
if zeros:
dicts[i] = [] # if so replace element in dicts by []
print (dicts)
产出:
[[{'name': 'blue', 'y': 1}, {'something else': 'red', 'y': 0}],
[{'name': 'green', 'y': 0}, {'name': 'purple', 'y': 2}],
[],
[{'name': 'green', 'y': 0}, {'name': 'purple', 'y': 2}]]
最后的输出应该是类似dict1:'[{'name':'red','y':2}]'的字典,dict2:'[{'name':'red','y':2}],其中值是字符串。这是higcharts.js的数据。您根本没有使用由enumerate
生成的索引。一开始就不需要了。
[[{'name': 'blue', 'y': 1}, {'something else': 'red', 'y': 0}],
[{'name': 'green', 'y': 0}, {'name': 'purple', 'y': 2}],
[],
[{'name': 'green', 'y': 0}, {'name': 'purple', 'y': 2}]]