2017-07-19 86 views
-4

我想打開一個像這樣的字符串: 'word1-3,word2-4,word3-1,word4-2'將特殊字符串格式轉換爲字典?

到這樣一個字典: {'word1': 3 , 'word2': 4 , 'word3' : 1 , 'word4' : 2}

我該怎麼辦呢?

+0

您好,Kosar,歡迎來到StackOveflow。請熟悉[問]的準則。一般來說,你想提供證據表明你已經完成了*某件事*來嘗試自己解決這個問題。被認爲是「給我codez」類型的問題將會收到很差。 –

回答

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'} 
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將按照要求。