есть массив
S = [12, 121, 234, 343, 343, 343]
Code[S[i:]] = 1
Code[S[:i]] = 0
Как я понял (возможно неправильно), что в словаре нужно чтобы ключи были строкового типа, сейчас тут срезы списка поэтому получается ошибка.
Заранее спасибо за помощь.
S = [12, 121, 234, 343, 343, 343]
Code[S[i:]] = 1
Code[S[:i]] = 0
s = (12, 121, 234, 343, 343, 343)
code = {}
code[s[3:]] = 0
code[s[:3]] = 1
Yurietc
С кортежем могут возникнуть трудности в будущем - он тоже должен будет содержать только неизменяемые типы. В большом проекте я бы такой подход не использовал - внезапно могут появится ошибки в уже отлаженном и много раз используемом коде.
>>> class A():
... pass
...
>>> a = A()
>>> d = {}
>>> d[(1,'s',a)] = 5
>>> d
{(1, 's', <__main__.A instance at 0xb767cbec>): 5}
>>> {(2,):1}
{(2,): 1}
>>> {([],):1}
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
{([],):1}
TypeError: unhashable type: 'list'
o7412369815963
Вроде как что угодно можно завернуть в кротеж, какие ошибки?
>>> class A:
... pass
...
>>> o = A()
>>> hash(o)
-881544782
>>> hash(([], 1))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>>