以下代碼的pythonic方式是什麼,它基本上是從PHP複製的?Python拆分和操縱結果
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"
以下代碼的pythonic方式是什麼,它基本上是從PHP複製的?Python拆分和操縱結果
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"
您可以使用與dict()
function發電機的表達:
return dict(item.split(':', 1) for item in info.split(';'))
這使得使用的事實dict()
函數接受一個可迭代(key, value)
雙。 str.split()
的參數1
將分割限制爲僅一次;更有效率和任何額外的冒號被忽略併成爲價值的一部分。
演示:
>>> info = "test:1;xxx:4;yyy:12"
>>> dict(item.split(':', 1) for item in info.split(';'))
{'test': '1', 'xxx': '4', 'yyy': '12'}
這正是我所期待的。謝謝 – 2014-10-08 07:20:18
我猜你使用額外的字典。通過字符串索引列表是不可能的。所以這樣做:
def get_extra_info(self, info):
extra = {}
for i in info.split(';'):
t = i.split(':')
extra[t[0]] = t[1]
return extra
大概你的意思是'extra'是*字典*,而不是列表。 – 2014-10-08 07:18:43