我試圖做這樣的事情在Python代碼如下列表索引必須是整數,而不是str的
PHP代碼:
if(!$my_data[$n_vertex]['visited']){
$my_data[$n_vertex-1]['visited'] = true;
}
什麼,我究竟在做的Python
def bfs(my_data):
my_queue = [] #array to store vertices
my_queue.insert(0, my_data[0]); #pass the first value to the first index of queue
my_data[0]['visited'] = 'true';
while my_queue:
vertex = my_queue.pop()
for n_vertex in vertex['neighbors']:
#print(n_vertex)
if my_data[n_vertex]['visited']:
continue
else:
my_data[n_vertex]['visited'] = 'true'
my_queue.insert(0, my_data[n_vertex]);
而我收到以下內容錯誤:
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是我的函數名
什麼是my_data?什麼是'n_vertex'? –
現在增加了完整的功能 - 它可以幫助 –
@JeffCraine:PHP的數組類型不像Python的列表類型。你需要使用列表和字典。 – Blender