将列表中的列表转换为字典

Goldenasian

我得到了这样的清单:

[['a','b','1','2']['c','d','3','4']]

我想将此列表转换为字典,如下所示:

{
    ('a','b'):('1','2'),
    ('c','d'):('3','4')
}

例如,('a','b')&('c','d')表示键,('1','2')&('3','4')表示值

所以我用这样的代码

new_dict = {}
for i, k in enumerate(li[0:2]):
    new_dict[k] =[x1[i] for x1 in li[2:]]
print(new_dict)

,但导致无法散列的类型错误“列表”

我尝试了其他几种方法,但是效果不佳。.有什么办法可以解决?

阿兹罗

您不能list作为密钥,但是tuple可以。另外,您无需在列表中进行切片,而在子列表中进行切片。

您需要2个第一个值sublist[:2]作为键,并且对应的值是索引2中的子列表sublist[2:]

new_dict = {}
for sublist in li:
    new_dict[tuple(sublist[:2])] = tuple(sublist[2:])

print(new_dict)  # {('a', 'b'): ('1', '2'), ('c', 'd'): ('3', '4')}

与dict理解相同

new_dict = {tuple(sublist[:2]): tuple(sublist[2:]) for sublist in li}
print(new_dict)  # {('a', 'b'): ('1', '2'), ('c', 'd'): ('3', '4')}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章