如何将含双字符串子列表的嵌套列表转为字典,解决list indices报错
报错原因
你的代码问题出在循环逻辑的索引使用错误:遍历csv_data时,拿到的x已经是嵌套列表里的每一个子列表对象,不需要再用csv_data[x[0]]的方式二次索引。x[0]本身是字符串类型,用字符串作为列表的索引就会触发list indices must be integers or slices, not str的报错。
修复方案
方案1:修改原有循环逻辑
直接用子列表的两个元素分别作为字典的键和值即可:
idtoname = {} for x in csv_data: idtoname[x[0]] = x[1]
方案2:Python原生简洁实现
Python的dict构造器原生支持接收键值对序列,一行代码就能完成转换,是更符合Python语法习惯的写法:
idtoname = dict(csv_data)
效果验证
以示例输入[["a","b"],["c","d"],["e","f"]]测试,两种方案输出的结果均为{'a': 'b', 'c': 'd', 'e': 'f'},完全符合需求。
内容的提问来源于stack exchange,提问作者Isaac L
相关产品推荐
相关产品推荐

