2014-12-10 3 views
-1

У меня есть следующий код:питон INT объект не subscriptable

import random 
random.seed(57) 
c = {} 
for key in l: 

это с помощью двух чисел из значения словаря -L- как диапазон для случайного не

pos = random in range(l[1[0]], l[1[1]]) 
    c["l[0]"] = pos 
return c 

Когда я бегу doctest в CMD он говорит мне, что ИНТ объект не subscribtable Я бегу следующие doctest:

>>> ranPos({'Dennis': [90.0, 0.0]}) 
{'Dennis': 90.0}` 
+2

Это не приближается к действительному коду. –

+0

Что означают '1 [0]' и '1 [1]'? Я думаю, что они должны быть 'l [0]' и 'l [1]' соответственно. – chepner

+0

Значение в словаре, а затем второе значение в этом кортеже Словарь отформатирован {key, (tuple, tuple)} – FailedWolfhound

ответ

0

Итак, давайте посчитаем ошибки.

1[0] означает «принять первый индекс 1». Очевидно, 1 является int и не имеет индексов. Вы предположительно имеете в виду l[1][0], т. Е. «Возьмите первый индекс второго индекса l».

Далее, random in range() не имеет смысла. Это делает проверку, чтобы определить, находится ли объект, на который указывает имя random, в указанном вами диапазоне. Ну, поскольку random - это модуль, он, вероятно, не будет в диапазоне от int. Возможно, вы имели в виду random.randrange(...)?

В-третьих, вы каким-то образом переключились на строку при индексировании c. Это означает, что все ваши результаты будут храниться в одном и том же индексе в c, то есть в том, что упоминается этой строкой. Возможно, вы имели в виду c[str(l[0])]?

+0

Вы очень помогли. Извините, я новичок в python и склонен к ошибкам Большое спасибо – FailedWolfhound

Смежные вопросы