Попытка взять строки из моего networkx dict и добавить их в определенное место в массиве:
def sameSports(node1, node2, G):
A = [G.node[node1]['sport1'], G.node[node1]['sport2'], G.node[node1]['sport3']]
B = [G.node[node2]['sport1'], G.node[node2]['sport2'], G.node[node2]['sport3']]
sharedSports = np.intersect1d(A,B)
sharedSports = np.delete(sharedSports, np.where(sharedSports == 'N/A'))
return sharedSports
def meetingDay(sharedSports,rightAxis):
meetingDays = [[] for i in range (len(sharedSports))]
columns=['Monday','Tuesday','Wednesday','Thursday','Friday']
for i in range (0,5):
for t in sharedSports:
n=np.where(sharedSports==t)
meetingDays[n].append(t)
if t in rightAxis[i]:
meetingDays[n].append(columns[i])
return meetingDays
G.node [n] ['sport'] dicts возвращает однобуквенные строки 'A '-'W', а массив rightAxis представляет собой массив из 5 частей, содержащий некоторые из тех же букв. Получение этой ошибки:
Traceback (последний вызов последним): файл ". \ Main.py", строка 18, в a, b = add_sport_to_edges (G, rightAxis) Файл "C: \ Users \ rjtkr \ OneDrive \ Documents \ Work \ Summer 2020 Research \ epidemic \ Athletics Network \ sportsnetwork.py ", строка 99, в файле add_sport_to_edges temp = meetingDay (sharedSports, rightAxis)" C: \ Users \ rjtkr \ OneDrive \ Documents \ Work \ Summer 2020 Research \ epidemic \ Athletics Network \ sportsnetwork.py ", строка 90, в meetingDay meetingDays [n] .append (t) TypeError: индексы списка должны быть целыми числами или фрагментами, а не кортежем
Не уверен, что ему не нравится 'n' или 't', но он уверен, что ни то, ни другое не является кортежем. Надеюсь, я включил весь соответствующий код. Остальные строки, отображаемые в сообщении об ошибке, идут после прикрепленного кода, и ошибка остается неизменной после их удаления.