Как использовать хешированные значения в качестве индекса в Python - PullRequest
0 голосов
/ 03 июля 2019

Я хочу использовать три списка в качестве индекса для таблицы в Python.Для этого я решил хешировать списки в int, потому что вы не можете использовать списки в качестве индекса.

Проблема заключается в том, что хешированный vaule - это число типа: -103692953590217654 Это не может быть использовано какindex также.

Как я могу превратить это высокое int в меньшее число, чтобы оно могло использоваться для индекса таблицы?

Мне нужно это решение, чтобы заполнить q-таблицу для основы обучения подкреплению.Мое состояние определяется тремя списками.

IndexError: индекс списка вне диапазона

1 Ответ

2 голосов
/ 03 июля 2019

Кортежи могут быть хэшируемыми, и звучит так, будто вы должны использовать их для своего случая.

В качестве произвольного примера:

a = (1,2)  
b = (3,4)  
q_learning_dict = {}  
q_learning_dict[(a, b)] = 0.1  

Чтобы преобразовать свои списки в кортежи, вы можете просто передать их в функцию tuple(), например tuple([1,2,3]).

Предупреждение: Кортежи НЕМНОГО.Это означает, что вы не можете изменять их содержимое после их инициализации (что также делает их хешируемыми).

Хэширование списка не имеет смысла, поскольку вы можете изменить содержимое списка или добавить / удалить значения из него, что сделает ваш предыдущий хэш недействительным.

...