将特殊字符串格式转换为dict?

时间:2017-07-19 16:53:54

标签: python string python-3.x dictionary

我想要像这样转换一个字符串: 'word1-3,word2-4,word3-1,word4-2'

进入这样的字典: {'word1': 3 , 'word2': 4 , 'word3' : 1 , 'word4' : 2}

我该怎么办?

2 个答案:

答案 0 :(得分:3)

如果" - "和","字符只用作分隔符,那么你可以试试这样的东西:

s = 'word1-3,word2-4,word3-1,word4-2'
d = dict(item.split('-') for item in s.split(','))
print(d) # >> {'word4': '2', 'word1': '3', 'word3': '1', 'word2': '4'}

或使用字典理解并将值转换为整数:

s = 'word1-3,word2-4,word3-1,word4-2'
d = {pair[0]:int(pair[1]) for pair in [item.split('-') for item in s.split(',')]}
print(d) # >> {'word4': '2', 'word1': '3', 'word3': '1', 'word2': '4'}

答案 1 :(得分:0)

我猜你的意思是如何使用代码实现这一点,因为在大多数情况下python字符串无法实现这一点。

#import split from the re library
from re import split

#your example string
some_string = 'word1-3,word2-4,word3-1,word4-2'

#this will hold our values while we iterate through it
output_dict = {}

#split the some_string into a list of key value strings
for key_val_pair in split(r',', some_string):
    #split the key value pair into a key and value
    key_val_split = split(r'\-', key_val_pair)
    #append the value to the dict, indexed by the key
    output_dict[key_val_split[0]] = key_val_split[1]

output_dict将按要求提供。