Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查字典列表中键的值是否都等于0_Python_List_Dictionary - Fatal编程技术网

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}]]