将列表列表转换为字典,其中列表中的列表包含两个字符串



我有一个列表列表,其中列表中的列表包含两个字符串。我试图将它们映射到一个字典中,其中键是列表中的第一个字符串,值是列表中第二个字符串。

即。[[a,b],[c,d],[e,f]]转换为{a:b,c:d,e:f}

但是,我的代码出现错误:"列表索引必须是整数或切片,而不是str";

idtoname = {}
for x in csv_data:
idtoname[csv_data[x[0]]] = csv_data[x[1]]

其中csv_data是列表列表。

您可以使用序列拆包来提高表达式的可读性:

csv_data = [['a','b'],['c','d'],['e','f']]
idtoname = {}
for a, b in csv_data:
idtoname[a] = b
# idtoname = {'a': 'b', 'c': 'd', 'e': 'f'}
idtoname = {}
for x in csv_data:
idtoname[x[0]] = x[1]

在循环x中已经有一个csv_data元素。

将第三行更改为idtoname[csv_data[x[0]]] = x[1]

您只需调用列表列表上的dict()

>>> x = [['a', 'b'], ['c', 'd'], ['e', 'f']]
>>> dict(x)
{'a': 'b', 'c': 'd', 'e': 'f'}

相关内容

最新更新