使用列表中的值更新字典值

时间:2019-10-17 16:12:59

标签: python list dictionary

我有要更新的字典:

my_dict = {"a":"A", "b":"B"}

以及长度完全相同的列表:

my_list = ["D", "E"]

我想找到一种最有效的方法,将my_dict中的值更新my_list到:

{"a":"D", "b":"E"}

无需运行多个for循环或类似循环。我尝试使用列表推导来做到这一点,但是它不允许多个语句:

{my_dict_key:list_item for my_dict_key in my_dict.keys(), list_item in my_list}

3 个答案:

答案 0 :(得分:7)

zip()与字典理解结合使用:

{key: value for key, value in zip(my_dict, my_list)}

或者只是:

dict(zip(my_dict, my_list))

答案 1 :(得分:0)

如果您知道字典的顺序与列表相同,您可以使用范围内的for循环遍历每个键。

public class APIs
{
    public string name { get; set; }
    public string scope { get; set; }
    public string service { get; set; }
    public string version { get; set; }
}
public class APIObject
{
    public APIs[] APIs { get; set; }
}


JArray testArray = (JArray)jObject["APIs"];
var query = from testing in testArray
                select new APIs
                    {
                        scope = (string)testing["scope"],
                        service = (string)testing["service"],
                        version = (string)testing["version"]
                    };

List<APIs> testings = query.ToList() as List<APIs>;
var item = testings.Find(f => f.scope == "ALPHA");

Demo

答案 2 :(得分:0)

也许会帮助

  1. 第一个查找关键字的人
    keys=dic.keys()
  1. 然后使用列表元素更新字典
    for i in range(len(lis)):
        dic[keys[i]]=lis[i] 

3。将更新词典。