我有要更新的字典:
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}
答案 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");
答案 2 :(得分:0)
也许会帮助
keys=dic.keys()
for i in range(len(lis)):
dic[keys[i]]=lis[i]
3。将更新词典。