迭代字符串的一部分

Tho*_*mas 5 python string iterator string-conversion

我在表格中有字符串

[3339:1.6101369,1062:1.5,5751:1.5,6376:1.5,  ...  ]
Run Code Online (Sandbox Code Playgroud)

我想迭代逗号分隔的键值对.最好或最短的方法是什么?

Sve*_*ach 8

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
Run Code Online (Sandbox Code Playgroud)

或者,您可以将其转换为字典(剥离括号后):

d = dict(kv.split(":") for kv in s.split(","))
Run Code Online (Sandbox Code Playgroud)

然后遍历字典:

for key in d:
    print key, d[key]
Run Code Online (Sandbox Code Playgroud)


Mar*_*ers 4

d = ast.literal_eval('{' + s[1:-1] + '}')
Run Code Online (Sandbox Code Playgroud)

  • @Swiss:ast.literal_eval仅评估文字。 (4认同)