类型错误:“设置”对象不可调用[PYTHON]

问题描述 投票:0回答:1

查看了其他一些论坛,看看是否能找到这个问题的答案,但我没有找到满意的答案。我正在编写一个程序来计算达到指定索引的斐波那契数列,但我不断收到错误。

allNums = {1, 1}

while len(allNums) < 35:
    currentIndex = len(allNums)
    nextIndex = allNums[currentIndex - 1] + allNums[currentIndex - 2]
    allNums[currentIndex] = nextIndex
    print(nextIndex)

这在我的笔记本电脑上工作正常,但由于某种原因,当我在台式机上尝试它时,它给了我错误:

nextIndex = allNums(currentIndex - 1) + allNums(currentIndex - 2)
TypeError: 'set' object is not callable

有什么帮助吗?

python set
1个回答
0
投票

集合不支持调用

allNums(currentIndex - 1)
,也不支持下标(即允许索引分配)
allNums[currentIndex - 1]
。其设计目的是快速搜索项目,而不是按顺序存储它们。

您需要

allNums
成为列表,而不是集合:

allNums = [1, 1]

while len(allNums) < 35:
    currentIndex = len(allNums)
    nextIndex = allNums[currentIndex - 1] + allNums[currentIndex - 2]
    allNums.append(nextIndex)
    print(nextIndex)

输出:

2
3
5
8
13
21
34
...
© www.soinside.com 2019 - 2024. All rights reserved.