Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用for循环填充字典_Python_Loops_Dictionary - Fatal编程技术网

Python 使用for循环填充字典

Python 使用for循环填充字典,python,loops,dictionary,Python,Loops,Dictionary,我想创建一个如下所示的词典: {'area1': ['x1_area1', 'x2_area1'], 'area2': ['x1_area2', 'x2_area2']} 我正在尝试使用for循环: dict_ ={} keys =["area1","area2"] for key in keys : dict_ = {key : ["x1_"+ key,"x2_"+ key]} dict_.up

我想创建一个如下所示的词典:

{'area1': ['x1_area1', 'x2_area1'], 'area2': ['x1_area2', 'x2_area2']}
我正在尝试使用for循环:

dict_ ={}
keys =["area1","area2"]
for key in keys : 
    dict_ = {key : ["x1_"+ key,"x2_"+ key]}
    dict_.update(dict_)
但我得到的结果是:

{'area2': ['x1_area2', 'x2_area2']}

原始代码覆盖第一个值

以下代码将在不覆盖的情况下更新:


keys =["area1","area2"]

dict_ = {}
for key in keys :
    x = {key : ["x1_"+ key,"x2_"+ key]}
    dict_.update(x)

# {'area1': ['x1_area1', 'x2_area1'], 'area2': ['x1_area2', 'x2_area2']}
print(dict_)



原始代码覆盖第一个值

以下代码将在不覆盖的情况下更新:


keys =["area1","area2"]

dict_ = {}
for key in keys :
    x = {key : ["x1_"+ key,"x2_"+ key]}
    dict_.update(x)

# {'area1': ['x1_area1', 'x2_area1'], 'area2': ['x1_area2', 'x2_area2']}
print(dict_)



在您的循环中,您正在重新定义
dict\uz
,从而覆盖现有的值。使用不同的变量名,或完全内联其用法:

dict_ = {}
keys = ["area1", "area2"]
for key in keys:
    dict_.update({key : ["x1_" + key, "x2_" + key]})

这将占用您100%的代码,并修复特定的问题。对于这个问题,有更好、更“Pythonic”的解决方案,这在其他答案中进行了解释。

在您的循环中,您正在重新定义dict,从而覆盖现有的值。使用不同的变量名,或完全内联其用法:

dict_ = {}
keys = ["area1", "area2"]
for key in keys:
    dict_.update({key : ["x1_" + key, "x2_" + key]})
这将占用您100%的代码,并修复特定的问题。对于这个问题,有更好、更“Pythonic”的解决方案,其他答案对此进行了解释。

试试这个

res = {k: [f'{x}_{k}' for x in ('x1', 'x2')] for k in keys}
print(res)
输出:

{'area1': ['x1_area1', 'x2_area1'], 'area2': ['x1_area2', 'x2_area2']}
试试这个

res = {k: [f'{x}_{k}' for x in ('x1', 'x2')] for k in keys}
print(res)
输出:

{'area1': ['x1_area1', 'x2_area1'], 'area2': ['x1_area2', 'x2_area2']}
试试看:

keys =["area1","area2"]
dict_ = {}
for key in keys : 
    dict_[key] = ["x1_"+ key,"x2_"+ key]
    
dict_
试试看:

keys =["area1","area2"]
dict_ = {}
for key in keys : 
    dict_[key] = ["x1_"+ key,"x2_"+ key]
    
dict_

在研究如何将项目添加到字典时,它看起来像是
dict\ukey]=“answer”
这是一条路要走

dict_ = {}
keys = ["area1", "area2"]
for key in keys:
    dict_[key] = ["x1_" + key, "x2_" + key]
print(dict_)

在研究如何将项目添加到字典时,它看起来像是
dict_uukey]=“answer”
这是一条路要走

dict_ = {}
keys = ["area1", "area2"]
for key in keys:
    dict_[key] = ["x1_" + key, "x2_" + key]
print(dict_)

您进行过任何调试吗?我建议你阅读。你做过调试吗?我建议你读书。