以下代码的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"
答案 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