Python拆分并操纵结果

时间:2014-10-08 07:16:05

标签: python string split

以下代码的pythonic方式是什么,基本上是从php复制的?

def get_extra_info(self, info):
    extra = []
    for i in info.split(';'):
        t = i.split(':')
        extra[t[0]] = t[1]
    return extra

信息采用以下格式

info = "test:1;xxx:4;yyy:12"

2 个答案:

答案 0 :(得分:4)

您可以将生成器表达式与dict() function

一起使用
return dict(item.split(':', 1) for item in info.split(';'))

这利用了dict()函数接受(key, value)对迭代的事实。 1的{​​{1}}参数将分割限制为仅一次;效率更高,任何额外的str.split()冒号都会被忽略,并成为价值的一部分。

演示:

:

答案 1 :(得分:0)

我猜你使用extra作为字典。无法按字符串索引列表。所以这样做:

def get_extra_info(self, info):
    extra = {}
    for i in info.split(';'):
        t = i.split(':')
        extra[t[0]] = t[1]
    return extra