2017-07-19 5 views
-4

私はこのような文字列を有効にする:どのように私はそうすることができる {'word1': 3 , 'word2': 4 , 'word3' : 1 , 'word4' : 2}特別な文字列形式をdictに変換しますか?

:このような辞書に 'word1-3,word2-4,word3-1,word4-2'

+0

こんにちは、こんにちは、スタックオーバーフローを歓迎します。 [ask]のガイドラインに慣れてください。一般的には、あなた自身でこれを解決しようとしていることを証明したいと思っています。裸の "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が要求されます。

関連する問題