从一个字符串添加2个字典条目

时间:2012-07-26 11:40:21

标签: python python-2.7

假设我有以下代码:

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

我想将字符串拆分为2个字典元素,如下所示:

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

我试图以同样的方式将字符串拆分成一个列表,以便简要了解如何做到这一点,但我没有取得多大成功。

3 个答案:

答案 0 :(得分:4)

text = "Yes: No Maybe: So"
words = [w.rstrip(':') for w in text.split()]
new_dict = dict(zip(words[::2], words[1::2]))

答案 1 :(得分:2)

如果每个冒号后跟一个空格,str.split()将适合您:

tokens = (s.rstrip(":") for s in text.split())
new_dict = dict(zip(tokens, tokens))

答案 2 :(得分: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'}