[{"name": "thisisname1", "filebytestotal": 334632,"memorybytes": 5467234},
{"name": "thisisname2", "filebytestotal": 2351, "memorybytes": 324523},
{"name": "thisisname3", "filebytestotal": 2314651, "memorybytes": 2235},
{"name": "thisisname1", "filebytestotal": 13432, "memorybytes": 546534},
{"name": "thisisname1", "filebytestotal": 32342, "memorybytes": 341234}]
大家好,我试图弄清楚如何为所有匹配的“名称”值取键文件字节和内存字节的平均值。 我的问题是我无法从总列表中的字典中搜索模式。
提前谢谢!
答案 0 :(得分:0)
这是带有“ memorybytes”键的示例。
dic = [{"name": "thisisname1", "filebytes": 334632,"memorybytes": 5467234},{"name": "thisisname2", "filebytestotal": 2351, "memorybytes": 324523},{"name": "thisisname3", "filebytestotal": 2314651, "memorybytes": 2235},{"name": "thisisname1", "filebytestotal": 13432, "memorybytes": 546534},{"name": "thisisname1", "filebytestotal": 32342, "memorybytes": 341234}]
pattern_name = "1"
all_memorybytes = [element['memorybytes'] for element in dic if pattern_name in element['name'] ]
avg_memorybytes = sum(all_memorybytes) / float(len(all_memorybytes))
print avg_memorybytes
使用文件字节存储总会有一个问题,因为您有两个不同的密钥: “ filebytes”和“ filebytestotal”。如果您在数组的所有元素中都具有此键,则可以通过更改理解列表中的键来使用相同的功能。
答案 1 :(得分:0)
解决此问题的一种方法是将其重组为列表字典。像
{
label: 'Field Label',
key: 'field-key',
operation: somefunctionWithParam(param)
}
这使用defaultdict
填充具有默认值的所有空键。您可以使用内置词典来编写它,但这可以节省几行。