Я тестировал этот кусок кода:
dic = {1:[[[1],2],[[2],3],[[3],4]],2:[[[5],6],[[7],8]],3:[[[9],10],[[11],12]]}
klst = list(dic.keys())
# print(klst)
print(dic[1])
for item in dic[klst[0]]:
if item == [[2],3]:
dic[klst[0]].remove(item)
print(item)
break
print(dic)
Я получаю следующий вывод:
[[[1], 2], [[2], 3], [[3], 4]]
[[2], 3]
{1: [[[1], 2], [[3], 4]], 2: [[[5], 6], [[7], 8]], 3: [[[9], 10], [[11], 12]]}
Итак, remove () прекрасно удаляет список из списка значенийсловарь.
Я реализовал аналогичную структуру, где ключи являются эвристическими значениями, а значения являются списком списка.Внутренний список состоит из массива и строки.Например:
[array([[10, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 0, 9, 11]]), 'left']
Сейчас я пытаюсь удалить такой список из словаря и получаю
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Код работал первые два раза, удаляя такой список из словаря
for move in index_move_priority:
for item in open_nodes[keylist[0]]: # item in list of states
if move == item[1]:
print("KLYST",keylist[0])
print("////////////////",open_nodes[keylist[0]])
print("ITEM->",item)
print(type(open_nodes[keylist[0]]))
print(type(item))
open_nodes[keylist[0]].remove(item)
find_neighbor_node = item
temp = True
break
if temp == True:
break
Здесь open_nodes - мой словарь.Строка
open_nodes[keylist[0]].remove(item)
вызывает ошибку ValueError.Я напечатал содержимое keylist [0] , а также open_nodes [keylist [0]] следующим образом до ошибки.
KLYST 8
//////////////// [[array([[10, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 0, 9, 11]]), 'left'], [array([[10, 1, 2, 3],
[ 4, 0, 6, 7],
[ 8, 9, 5, 11]]), 'up-left'], [array([[10, 1, 0, 3],
[ 4, 5, 2, 7],
[ 8, 9, 6, 11]]), 'up'], [array([[10, 1, 2, 3],
[ 4, 0, 5, 7],
[ 8, 9, 6, 11]]), 'left'], [array([[10, 0, 2, 3],
[ 4, 5, 1, 7],
[ 8, 9, 6, 11]]), 'up-left']]
ITEM-> [array([[10, 1, 0, 3],
[ 4, 5, 2, 7],
[ 8, 9, 6, 11]]), 'up']
Я не знаюне понимаю, почему я получаю неоднозначную ошибку значения.ОБНОВЛЕНИЕ: найти код здесь https://github.com/idk-kid/test/blob/master/test.ipynb