我有一串
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'
您可以拆分。
my_dict = {str.split(" ")[0]:str.split(" ")[1]}
注意: 如果你有, 比如说, Name John Smith
并希望dict是 Name:Smith
,然后你可以直接改变 [1]
到 [-1]
来获取最后一个索引项。
你可以使用 dict
函数,提供[key,value]列表(或(key,value)元组)。
my_str = "Arjun 23344"
Name = dict([my_str.split()])
print(Name) # output: {'Arjun': '23344'}
Name = dict([str.split()])
只有当你的字符串总是被分割为 恰恰 两个字。这样做的原因是 split
调用返回一个包含两个元素的列表,然后将其存储在一个包含列表中,并传递给 dict
构造函数。后者可以与一个序列(list
或其他)的对子(list
s或其他)。)
这在这种特殊情况下是可行的,但并不稳健或可移植。
因为在你的变量中只有两个字符串,所以你可以为分割函数提供第二个参数,以限制分割的数量(在本例中为1)。
string = "Name Shivank"
k,v = string.split()
d = dict()
d[k] = v
print(d) #output: {'Name':'Shivank'}
您可以为 split 函数提供第二个参数来限制分隔符的数量(本例中为 1)。
dict([string.split(" ",1)])