gpt4 book ai didi

python - TypeError 'set' 对象不支持项目分配

转载 作者:行者123 更新时间:2023-12-05 00:49:27 26 4
gpt4 key购买 nike

我需要知道为什么它不会让我将作业的值增加 1:

keywords = {'states' : 0, 'observations' : 1, 'transition_probability' : 2, 'emission_probability' : 3}
keylines = {-1,-1,-1,-1}

lines = file.readlines()
for i in range(0,len(lines)):
line = lines[i].rstrip()
if line in keywords.keys():
keylines[keywords[line]] = i + 1 << this is where it is giving me the error

我将它作为一个类运行,它运行良好,但现在作为一个内联代码片段它给了我这个错误。

最佳答案

我很惊讶这里没有答案,所以添加一个点击这里显示的更常见方式之一的答案,以防其他人从搜索中点击这个并需要知道。

目前尚不清楚 OP 是尝试将其用作集合还是第二个字典,但在我的情况下,由于 Python 中的一个常见缺陷,我遇到了错误。

这取决于两件事:

在 Python 中,字典和集合都使用 { }。 (从 python 3.10.2 开始)

您不能创建只有键而没有值的字典。因此,如果你只做 a_dict = {1, 2, 3} 你不做一个字典,你做一个集合,如下例所示:

In [1]: test_dict = {1, 2, 3}
...: test_set = {1, 2, 3}
...:
...: print(f"{type(test_dict)=} {type(test_set)=}")

type(test_dict)=<class 'set'>
type(test_set)=<class 'set'>

如果您想声明一个仅包含键的字典,您需要将值添加到您的键:值对。但是,you can use None :

In [4]: test_dict = {1: None, 2: None, 3: None}
...: test_set = {1, 2, 3}
...:
...: print(f"{type(test_dict)=} {type(test_set)=}")
type(test_dict)=<class 'dict'>
type(test_set)=<class 'set'>

dict.fromkeys ([1, 2, 3])

关于python - TypeError 'set' 对象不支持项目分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40553742/

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