我有以下代码
for index,(key,value) in enumerate(dict_var.items()):
sorted_dict[index] = (key, value)
print("The sorted list is:{}".format(sorted_dict))
其中
有人可以解释为什么此代码不起作用吗?
我收到此错误:
sorted_dict [index] =(键,值)
IndexError:列表分配索引超出范围
答案 0 :(得分:1)
sorted_dict = []
sorted_dict[0] = 1 #IndexError: list assignment index out of range
该索引专门用于访问python列表中的现有位置,并且不会默默地创建该列表以适应超出范围的索引。这个问题与枚举无关。
您可以简单地使用列表的.append()在末尾添加项目。 示例:
sorted_dict = []
for key,value in dict_var.items():
sorted_dict.append((key, value))
print("The sorted list is:{}".format(sorted_dict))
答案 1 :(得分:0)
由于dict_var
的len大于sorted_dict
的len,因此出现索引错误。为避免此错误,请确保列表的大小大于或等于sorted_dict
的len。如果您可以在运行代码之前向我们展示sorted_dict
的外观,那也将有所帮助。另外,命名列表sorted_dict
可能不是一个好主意。 sorted_list
会更好。您还可以通过以下方式避免此错误:
for key, value in dict_var.items():
sorted_dict.append((key, value))