Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.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 - Fatal编程技术网

Python 创建值与另一个字典中的键相同的字典

Python 创建值与另一个字典中的键相同的字典,python,Python,也许拥有一个值与其键相同的字典是编程拙劣的标志。在这两种情况下,创建值与键相同的字典的最佳或最优雅的方法是什么,其中键取自另一个字典?换句话说,我想在这里实现dict2,而不需要显式填充它: dict1 = {'a': 'value 1', 'b' : 'value 2', 'c' : 'value 3'} dict2 = {'a' : 'a', 'b' : 'b', 'c' : 'c'} 也在哪里 topDict[1] = dict1 topDict[2] = dict2 实际应用中的键1

也许拥有一个值与其键相同的字典是编程拙劣的标志。在这两种情况下,创建值与键相同的字典的最佳或最优雅的方法是什么,其中键取自另一个字典?换句话说,我想在这里实现
dict2
,而不需要显式填充它:

dict1 = {'a': 'value 1', 'b' : 'value 2', 'c' : 'value 3'}
dict2 = {'a' : 'a', 'b' : 'b', 'c' : 'c'}
也在哪里

topDict[1] = dict1
topDict[2] = dict2

实际应用中的键
1
2
是语言代码,
2
表示的语言是“本机”语言,因此在
dict2
的情况下,嵌套词典的键不是要翻译的,而是按原样使用。

使用dict理解:

dict2 = {k: k for k in dict1}

这只是在dict1的所有键上循环,并将该键作为每个键值对的值进行回显。

我不确定您是否需要字典。看看:


字典是翻译地图;查查原文,得到译文。为“原始语言”使用字典可以使翻译代码更简单,因为它不需要特殊情况。谢谢@MartijnPieters,我只是想可能是OP不知道集合,并尝试用dictionary@HaiVu:否,数据结构的其余部分都是字典。使用一个集合会使代码复杂化。我不熟悉集合,但根据Martijn Pieters的评论,我认为它们不是我要寻找的(尽管我会更深入地研究它们)。在较旧版本的python中,您可能必须使用dict()函数:dict([(k,k)表示dict1中的k])@MayurPatel:您可以省略那里的
[…]
s = set(dict1.keys())