gpt4 book ai didi

python - 对字典进行排序但出现 "List Indices must be int, not tuple"错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:15:55 25 4
gpt4 key购买 nike

我正在尝试使用 sorted() 函数,因为我无法使用 OrderedDict (python 2.6.6)。但是我得到这个“List indices must be int, not tuple”错误

我尝试只在字典上使用 sorted() 函数,当我尝试使用一些虚拟值时它工作正常,但我不确定为什么它不适用于我的特定代码。

   venue_dict = {}
for venues in venue_names:
venue_dict[venues] = False
venue_dict = sorted(venue_dict)

我得到这个 TypeError: list indices must be integers, not str

所以我为每个地点创建了一个值为 False 的字典。 (venue_names 是所有 field 名称的列表) false 只是用作标志值。

无论如何,我尝试打印排序后的字典,但收到元组错误。有人知道为什么吗?我试着用谷歌搜索这个,但还没有找到解决方案。

最佳答案

内置 sorted()函数不适用于具有默认参数的字典,因为默认排序键将是 (key, value) 对。这是一个元组,而不是一个可排序的项目。

您可以通过 lambda 函数确保将字典键用作排序键:

mydict = sorted(mydict, key=lambda k: k[0])  # just the key from the (key, value) tuple

或者,您可以直接对字典的项目进行排序:

mydict = sorted(mydict.items())

上面的语句将返回元组列表。如果你想要一个实际的有序字典,你将不得不使用 OrderedDict。由于您使用的是 Python 2.6,而这只是 Python 2.7 中的一个问题,因此您可以安装 ordereddict通过运行 pip install ordereddict 通过 PIP 打包。然后:

from ordereddict import OrderedDict

mydict = OrderedDict(sorted(mydict.items()))

关于python - 对字典进行排序但出现 "List Indices must be int, not tuple"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57013674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com