jum*_*947 2 python dictionary list
我有一个列表(myarray),看起来像这样,
[u 'item-01', 52, u 'item-02', 22, u 'item-03', 99, u 'item-04', 84]
Run Code Online (Sandbox Code Playgroud)
我正在尝试将其转换为具有键和值的字典.
我试过循环,但没有给我预期的结果,
mydict = {}
for k,v in myarray:
mydict[k] = v
Run Code Online (Sandbox Code Playgroud)
简单:使用zip和扩展切片.
mydict = dict(zip(myarray[::2], myarray[1::2]))
Run Code Online (Sandbox Code Playgroud)
第一个扩展切片生成list所有偶数索引中的一个,其次是奇数索引,将zip它们组合成tuples,dict构造函数可以采用可迭代的配对值并使用它们作为键/值对进行初始化.
注意:Padraig的使用解决方案iter可以更快地工作(并处理非序列迭代),虽然它不太直观(并不像书面那样简洁).当然,它可以通过使用list乘法复制引用的行为而变得更加直观(参见序列操作表中的注释2;在itertools grouper配方中找到另一个用途的示例):
mydict = dict(zip(*[iter(myarray)]*2))
Run Code Online (Sandbox Code Playgroud)