在python中创建字典列表

时间:2016-02-16 04:39:56

标签: python list dictionary

我有以下代码片段:

for i in range(len(unique_example)):
    for j in range(len(unique_example[i])):

        print(name_of_attributes[i])
        print(unique_example[i][j])

        for k in range(len(goal_predicate_list)):
            print(goal_predicate_list[k])

            frequency = len([x for x in examples if x['Predicate'] == goal_predicate_list[k] and
                      x[name_of_attributes[i]] == unique_example[i][j]])

            print(frequency)

给定代码中的print语句打印如下:

Sepal_Length
4.9
Iris-setosa
4
Iris-virginica
1
Iris-versicolor
1

Sepal_Length
6.3
Iris-setosa
0
Iris-virginica
6
Iris-versicolor
3

Sepal_Length
7.6
Iris-setosa
0
Iris-virginica
1
Iris-versicolor
0

如何创建一个字典,将字典中的数据存储为:

 attribute_frequency_dict = {"Sepal_length": 4.9, "Iris-setosa": 4, "Iris-virginica": 1, "Iris-versicolor": 1}

然后以相同的方式将所有其他数据存储在以下列表中:

attribute_frequency_list = [ { }, { },...{ } ]

2 个答案:

答案 0 :(得分:1)

您不必使用范围 len 来迭代序列。

for i, u in enumerate(unique_example):
    for j in range(len(u)):
        # stores as { "attribute": value, "predicate_value[0]": occurrence, "predicate_value[1]": occurrence}
        attribute_frequency_dict = {name_of_attributes[i]: u[j]}
        for p in goal_predicate_list:
            frequency = len([x for x in examples if x['Predicate'] == p and x[name_of_attributes[i]] == u[j]])
            attribute_frequency_dict[p] = frequency
        attribute_frequency_list.append(attribute_frequency_dict)

答案 1 :(得分:0)

以下对代码段的更改有效。

{
    "current": 1,
    "rowCount": 10,
"total": 123
    "rows": [
        {
            "id": 19,
            "sender": "123@test.de",
            "received":"received1"
        },
{
            "id": 20,
            "sender": "123@testasdasd.de",
            "received":"receisaddved1"
        }
]
}

创建一个字典并为每个循环中的字符添加值。