将字符串转换为字典

Convert String to Dictionary

我有一个字符串

str = "Name John"

我想把它改成字典

{"Name":"John"}

如何实现? 我曾尝试使用理解,但出现错误。

str = "Arjun 23344"
Name = {str.split()}

错误

Traceback (most recent call last):
  File "/home/daphney/Python/AGame.py", line 2, in <module>
    Name = {x.split()}
TypeError: unhashable type: 'list'

您可以通过提供 [key,value] 列表(或(key,value)元组)的列表来使用 dict 函数创建字典:

my_str = "Arjun 23344"
Name = dict([my_str.split()])
print(Name) # output: {'Arjun': '23344'}

您可以拆分:

my_dict = {str.split(" ")[0]:str.split(" ")[1]}

注意:如果你有,比方说,Name John Smith 并希望字典为 Name:Smith,那么你只需将 [1] 更改为 [-1] 即可获得最后一个索引项目。

Name = dict([str.split()])

这仅在您的字符串始终拆分为正好 两个单词时才有效。这是有效的,因为 split 调用 returns 两个元素的列表,然后将其存储在包含列表中,并传递给 dict 构造函数。后者可以与成对(list 或其他)的序列(list 或其他)正常工作。

这在这种特殊情况下有效,但不够健壮或便携。

因为你的变量中只有两个字符串。

string = "Name Shivank"
k,v = string.split()
d = dict()
d[k] = v 
print(d) #output: {'Name':'Shivank'}

您可以向 split 函数提供第二个参数以限制分隔次数(在本例中为 1):

dict([string.split(" ",1)])