Python如何使用字符串一次性填充字典?

Python如何使用字符串一次性填充字典?,python,string,python-3.x,dictionary,printing,Python,String,Python 3.x,Dictionary,Printing,我有这个例子 Dict = {'Hello':'World', 'Hi':'Again'} x = (str(Dict)) Dict2 = {x} print (Dict2) 我理解为什么它不能以这种方式工作,但我是python新手,不知道自己在做什么。 我希望能够将我的字典导出到一个变量x,然后用它填充另一个字典。我不想使用dict.copy命令,因为变量x将存储在txt文件中。 非常感谢您的帮助。 提前感谢。如果您确实想使用字符串进行复制,您可以说: Dict2 = eval(repr(D

我有这个例子

Dict = {'Hello':'World', 'Hi':'Again'}
x = (str(Dict))
Dict2 = {x}
print (Dict2)
我理解为什么它不能以这种方式工作,但我是python新手,不知道自己在做什么。 我希望能够将我的字典导出到一个变量x,然后用它填充另一个字典。我不想使用dict.copy命令,因为变量x将存储在txt文件中。 非常感谢您的帮助。
提前感谢。

如果您确实想使用字符串进行复制,您可以说:

Dict2 = eval(repr(Dict))
但你没有理由要这么做。改用dict.copy

编辑:根据您在评论中所说的,另一位用户已经指出,json是最好的方式。看起来是这样的:

import json 

with open("file.txt", "w") as f:
    json.dump(Dict, f)

with open("file.txt") as f:
    Dict2 = json.load(f)

如果您正在寻找的是将类似dict的字符串表示形式保存到文件中,以便稍后加载,请使用。这与将字典导出到变量完全不同,但您的注释表明您真正想要做的是将字典保存到文件中。

您可以具体解决您的问题:

Dict = {'Hello':'World', 'Hi':'Again'}
x = str(Dict)
Dict2 = dict((y.split(':') for y in x[1:-1].strip().replace(" ","").replace("'","").split(',')))
或者如果你想使用字典理解

Dict2 = {y.split(':')[0]:y.split(':')[1] for y in x[1:-1].strip().replace(" ","").replace("'","").split(',')} 

但我真的不建议这样做。相反,有人建议我要么查看词典,要么将词典保存到文件中。

这是什么意思?听起来你所做的一切都是复制它,所以为什么不想使用copy呢?你不能执行{x},因为你无论如何都需要字典中的key-val赋值。那么试试{'Dict':x}还是什么?我正试图用file.write将字典放在一个文本文件中,用file.read读取字符串。我这样做是为了在progam使用之间保存变量。看起来您想对数据使用或。@thedoublet:那么您应该在问题中提到这一点。为此,您需要的是。谢谢。正如预期的那样,它工作得很好、更好、更简单。您应该知道,这比dict.copy效率低得多。没有理由认为这是个好主意。另外,如果你觉得我的答案有帮助,请投票接受。评估从来都不是个好主意。最好使用ast.literal\u eval。在这种情况下,json或pickle是最好的解决方案。