使用列表作为要插入的键值对
问题描述:
你好我有一个列表,我想插入到一个字典 - 但不是每个元素在字典中的新元素 - 列表本身是2项长,应该使用作为“键值”对。或者(因为知道python有几十种方法来做某些事情,所以这可能甚至不是必需的)。该基地的问题是,我想一个字符串分割成两个部分围绕一个分隔符,使用左为“关键”和“价值”的权利:使用列表作为要插入的键值对
for line in file:
if "=" in line:
tpair = line.split("=",1)
constantsMap.update(tpair)
当然,我可以做一个手工拆分,如:
for line in file:
if "=" in line:
p = line.find("=")
constantsMap[line[:p]] = line[p+1:]
但这似乎不是习惯性的“蟒蛇”,所以我想知道是否有更干净的方式?
答
你可以在这里使用sequence unpacking:
key,val = line.split("=", 1)
constantsMap[key] = val
请参见下面的演示:
>>> line = "a=1"
>>> constantsMap = {}
>>> key,val = line.split("=", 1)
>>> constantsMap[key] = val
>>> constantsMap
{'a': '1'}
>>>
PS:已经回答(等待时间) - 但你能解释的downvote? – paul23
如果答案很简单,有些人会以“为什么你不能想到这个?他们在Python中忘记了,一切都很简单。 :) – iCodez
“一切都很简单”,在这个过程中,python变得非常复杂。 8086汇编很简单 - 只有很多操作码需要考虑。 – paul23