2

次のコードがあるとします。

new_dict = {}
text = "Yes: No Maybe: So"

次のように、文字列を2つの辞書要素に分割したい:

new_dict = {'Yes':'No', 'Maybe':'So'}

方法を簡単に理解するために、同じ方法で文字列をリストに分割しようとしましたが、あまり成功していません。

4

3 に答える 3

4
text = "Yes: No Maybe: So"
words = [w.rstrip(':') for w in text.split()]
new_dict = dict(zip(words[::2], words[1::2]))
于 2012-07-26T11:43:58.913 に答える
2

各コロンの後にスペースが続く場合は、str.split()うまく機能します。

tokens = (s.rstrip(":") for s in text.split())
new_dict = dict(zip(tokens, tokens))
于 2012-07-26T11:43:55.120 に答える
1
>>> import re
>>> text = "Yes: No Maybe: So"
>>> dict(re.findall(r'(\w+): (\w+)', text))
{'Maybe': 'So', 'Yes': 'No'}

またはより効率的です:

>>> dict(m.groups() for m in re.finditer(r'(\w+): (\w+)', text))
{'Maybe': 'So', 'Yes': 'No'}
于 2012-07-26T11:47:58.753 に答える