Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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 将值附加到集合中的键_Python_Dictionary - Fatal编程技术网

Python 将值附加到集合中的键

Python 将值附加到集合中的键,python,dictionary,Python,Dictionary,我有一套 codes = {'Code1', 'Code2', 'Code3'} 我希望最终得到一个具有以下输出的字典 code_dict = {'Code1': 'Input_Code1', 'Code2': 'Input_Code2', 'Code3': 'Input_Code3'} 我试过使用dict.fromkeys(),但我的输出完全混乱了 for code in codes: code_dict = dict.fromkeys(codes, "Input_" + code

我有一套

codes = {'Code1', 'Code2', 'Code3'}
我希望最终得到一个具有以下输出的字典

code_dict = {'Code1': 'Input_Code1', 'Code2': 'Input_Code2', 'Code3': 'Input_Code3'}
我试过使用
dict.fromkeys()
,但我的输出完全混乱了

for code in codes:
    code_dict = dict.fromkeys(codes, "Input_" + code)
我还尝试使用

codes = codes | {c for c in codes}
但这也不起作用。我对字典比较陌生,所以如果答案就在我眼前,请原谅。

dict.fromkeys()
不接受值的表达式;您将得到一个具有所有相同值的字典(从技术上讲,所有值都是对一个对象的引用,在键之间共享)

您的循环刚刚为
code
集中的每个
code
创建了一个全新的字典,每个字典都替换了以前绑定到的对象
code\u dict
。最后,您将拥有一个字典,其中所有键都设置为相同的值,其中该值基于无序集中在迭代时最后生成的任何元素

如果需要生成不同的值,请使用dict理解:

code_dict = {code: "Input_" + code for code in codes}
字典理解为循环的每次迭代在左侧执行两个表达式,一个生成键(
code
,对于上面的示例),另一个用于值(这里是字符串文本和
code
的串联)

正确使用
dict.fromkeys()
和词典理解的演示:

>>> codes = {'Code1', 'Code2', 'Code3'}
>>> dict.fromkeys(codes, 'The same value for all keys')
{'Code3': 'The same value for all keys', 'Code1': 'The same value for all keys', 'Code2': 'The same value for all keys'}
>>> {code: "Input_" + code for code in codes}
{'Code3': 'Input_Code3', 'Code1': 'Input_Code1', 'Code2': 'Input_Code2'}
dict.fromkeys()
不接受值的表达式;您将得到一个具有所有相同值的字典(从技术上讲,所有值都是对一个对象的引用,在键之间共享)

您的循环刚刚为
code
集中的每个
code
创建了一个全新的字典,每个字典都替换了以前绑定到的对象
code\u dict
。最后,您将拥有一个字典,其中所有键都设置为相同的值,其中该值基于无序集中在迭代时最后生成的任何元素

如果需要生成不同的值,请使用dict理解:

code_dict = {code: "Input_" + code for code in codes}
字典理解为循环的每次迭代在左侧执行两个表达式,一个生成键(
code
,对于上面的示例),另一个用于值(这里是字符串文本和
code
的串联)

正确使用
dict.fromkeys()
和词典理解的演示:

>>> codes = {'Code1', 'Code2', 'Code3'}
>>> dict.fromkeys(codes, 'The same value for all keys')
{'Code3': 'The same value for all keys', 'Code1': 'The same value for all keys', 'Code2': 'The same value for all keys'}
>>> {code: "Input_" + code for code in codes}
{'Code3': 'Input_Code3', 'Code1': 'Input_Code1', 'Code2': 'Input_Code2'}

令人惊叹的!有什么办法可以绕过
“不可损坏类型:'set'”
错误?我的集合直接来自
codes=set(codedvalues)
@ATCH\u:你想在那里把整个集合用作键吗?检查您的实现中没有将
code
code
混在一起。我确实把它混在一起了。非常感谢你的帮助!令人惊叹的!有什么办法可以绕过
“不可损坏类型:'set'”
错误?我的集合直接来自
codes=set(codedvalues)
@ATCH\u:你想在那里把整个集合用作键吗?检查您的实现中没有将
code
code
混在一起。我确实把它混在一起了。非常感谢你的帮助!