创建一个列表,打印字典的值或0

时间:2017-07-05 19:19:09

标签: list python-3.x dictionary

我有一个清单

lis = [9,4,10,8,2,4]

我创建了一个字典

dicto = Counter(lis)

所以我的字典是

Counter({4: 2, 8: 1, 9: 1, 10: 1, 2: 1})

现在我创建了另一个列表,从2(列表的最小值)到10(列表的最大值)

lis2 = [2,3,4,5,6,7,8,9,10]

所以我想循环遍历lis2并检查字典键,如果字典键和lis2元素匹配,我将字典键的值存储为零。等等。

[1, 0, 2, 0, 0, 0, 1, 1, 1]

所以我做了类似的事情

count = [dicto[i] for i in range(2,11) for j in dicto.keys() if i==j]

但是我只能得到与lis2的元素匹配的字典键的值,而不是相应的0' s。

如果不匹配,如何获得0?我想以列表理解方式进行操作。

1 个答案:

答案 0 :(得分:4)

将列表理解与get一起使用:

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;     
import org.apache.commons.io.IOUtils;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class ParseTreeExample6 {
    public static void main(String[] args) throws MalformedURLException, IOException {
        String url = "http://freemusicarchive.org/api/get/albums.json?api_key=60BLHNQCAOUFPIBZ&limit=5";
        String json = IOUtils.toString(new URL(url));
        JsonParser parser = new JsonParser();
        JsonElement element = parser.parse(json);
        if (element.isJsonObject()) {
            JsonObject albums = element.getAsJsonObject();
            System.out.println(albums.get("title").getAsString());
            JsonArray datasets = albums.getAsJsonArray("dataset");
            for (int i = 0; i < datasets.size(); i++) {
                JsonObject dataset = datasets.get(i).getAsJsonObject();
                System.out.println(dataset.get("album_title").getAsString());
            }
        }

    }
}