我有一个列表:
x = ['user=inci', 'password=1234', 'age=12', 'number=33']
我想将x转换为dict,如:
{'user': 'inci', 'password': 1234, 'age': 12, 'number': 33}
最快捷的方式是什么?
答案 0 :(得分:4)
你可以用一个简单的衬垫来做到这一点:
dict(item.split('=') for item in x)
列表推导(或生成器表达式)通常比将map
与lambda
一起使用更快,并且通常被认为更具可读性,请参阅here。
答案 1 :(得分:2)
dict
和map
接近(f1
)
dict(map(lambda i: i.split('='), x))
天真的方法(f2
)
d = dict()
for i in x:
s = x.split("=")
d[s[0]] = s[1]
return d
仅限dict
(f3
)
dict(item.split('=') for item in x)
<强>比较强>
def measure(f, x):
t0 = time()
f(x)
return time() - t0
>>> x = ["{}={}".format(i, i) for i in range(1000000)]
>>> measure(f1, x)
0.5690059661865234
>>> measure(f2, x)
0.5518567562103271
>>> measure(f3, x)
0.5470657348632812
答案 2 :(得分:1)
dict(map(lambda i: i.split('='), x))