Итерация по частям строки - PullRequest
5 голосов
/ 15 февраля 2011

У меня есть строка в виде

[3339:1.6101369,1062:1.5,5751:1.5,6376:1.5,  ...  ]

Я хочу перебрать пары ключ-значение через запятую. Каков наилучший или самый короткий способ сделать это?

Ответы [ 2 ]

8 голосов
/ 15 февраля 2011
s = "[3339:1.6101369,1062:1.5,5751:1.5,6376:1.5]"
s = s.strip("[]")    # Drop the brackets
for kv in s.split(","):
    key, value = kv.split(":")
    print key, value

Кроме того, вы можете преобразовать это в словарь (после снятия скобок):

d = dict(kv.split(":") for kv in s.split(","))

и затем выполнить итерацию по словарю:

for key in d:
    print key, d[key]
3 голосов
/ 15 февраля 2011
d = ast.literal_eval('{' + s[1:-1] + '}')
...