Вы можете преобразовать строку, содержащую вашу двоичную позицию, в целое число, а затем использовать ее в качестве индекса вашего списка:
def binposition(binary_position, L):
return L[int(binary_position, 2)]
Примеры:
>>> L = list(range(10))
>>> binposition('111', L)
7
>>> binposition('101', L)
5
Вы можететакже расширьте класс list
и определите метод __getitem__
следующим образом:
class L(list):
def __getitem__(self, key):
return list.__getitem__(self, int(key, 2))
>>> l = L()
>>> l.extend(list(range(10)))
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l['111']
7
>>> l['001']
1