转换字符串为字典

问题描述 投票:0回答:2

我有一串

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'
python dictionary-comprehension
2个回答
0
投票

您可以拆分。

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

注意: 如果你有, 比如说, Name John Smith 并希望dict是 Name:Smith,然后你可以直接改变 [1][-1] 来获取最后一个索引项。


0
投票

你可以使用 dict 函数,提供[key,value]列表(或(key,value)元组)。

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

0
投票
Name = dict([str.split()])

只有当你的字符串总是被分割为 恰恰 两个字。这样做的原因是 split 调用返回一个包含两个元素的列表,然后将其存储在一个包含列表中,并传递给 dict 构造函数。后者可以与一个序列(list 或其他)的对子(lists或其他)。)

这在这种特殊情况下是可行的,但并不稳健或可移植。


0
投票

因为在你的变量中只有两个字符串,所以你可以为分割函数提供第二个参数,以限制分割的数量(在本例中为1)。

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

0
投票

您可以为 split 函数提供第二个参数来限制分隔符的数量(本例中为 1)。

dict([string.split(" ",1)])
© www.soinside.com 2019 - 2024. All rights reserved.