列表索引必须是整数,而不是s

2024-10-04 07:31:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Python做类似下面的代码

PHP代码:

if(!$my_data[$n_vertex]['visited']){       
     $my_data[$n_vertex-1]['visited'] = true;
}

我在Python中到底在做什么

^{pr2}$

我得到了以下错误

 File "/Users/osamayawar/Desktop/Python/BFS.py", line 30, in bfs
 if my_data[n_vertex]['visited']:
 TypeError: list indices must be integers, not str

列表索引的确切含义必须是整数。在

注意:bfs是我的函数名


Tags: 代码truedataifmy错误usersfile
3条回答

Python列表索引必须是整数。PHP使用键值对访问数组中的项,并且可能有重复项。例如:

$array= array( "name" => "Bill", "job" => "programmer",
                0 => "Bill",
                1 => "programmer");

PHP数组更类似于Python字典。见Python standard library docs on dictionaries

查看您正在处理的数据会很有帮助。(my_data的值)

如果您的数据结构与此类似,即字典列表,则可以使用:

^{pr2}$

您可能需要重新编写python代码,如下所示,使其更加“python”。在

if not my_data[n_vertex]['visited']:
    my_data[n_vertex]['visited'] = True
    my_queue.insert(0, my_data[n_vertex])

您正在尝试将字符串作为列表索引传递:

my_data[n_vertex]['visited']

“访问”不是一个数字。在

你能把我的资料申报一下吗?在

在Python中,列表索引总是整数。您可以使用索引访问该项:

l = ['a', 1, 2]
print l[0] ## 'a'
print l[1] ## 1

您可能需要一个dict

^{pr2}$

相关问题 更多 >