假設我有以下代碼:從一個字符串中添加2字典項
new_dict = {}
text = "Yes: No Maybe: So"
我想了分割字符串成2個字典元素,像這樣:
new_dict = {'Yes':'No', 'Maybe':'So'}
我試圖分裂以同樣的方式將它們串成一個清單,以便了解如何做到這一點,但我沒有取得太大的成功。
假設我有以下代碼:從一個字符串中添加2字典項
new_dict = {}
text = "Yes: No Maybe: So"
我想了分割字符串成2個字典元素,像這樣:
new_dict = {'Yes':'No', 'Maybe':'So'}
我試圖分裂以同樣的方式將它們串成一個清單,以便了解如何做到這一點,但我沒有取得太大的成功。
text = "Yes: No Maybe: So"
words = [w.rstrip(':') for w in text.split()]
new_dict = dict(zip(words[::2], words[1::2]))
如果每個冒號後面有一個空格,str.split()
將正常工作對您:
tokens = (s.rstrip(":") for s in text.split())
new_dict = dict(zip(tokens, tokens))
>>> 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'}
如果你有機會什麼'文本「應該是,你最好添加一些類似'''的分隔符。順便說一下,骯髒和快速的解決方案是在空間上分解字符串,然後從數組中取對(從第一個移除':'並將其添加到字典中。 – Leri 2012-07-26 11:42:18