Код: Выделить всё
MEM_strings = [False] * 71
for var_name, var_value in (list(globals().items())[29:]):
MEM_strings[var_value] = var_name
Чтобы выяснить проблему, которую я пытался....
- Я использовал операторы печати для проверки правильности своих значений, если я заменю назначение в цикле на:
Код: Выделить всё
print(f"{var_name}:{var_value}:{type(var_value)}")
Код: Выделить всё
MEM_FIRMWAREVERSION_MAJOR:0:
MEM_FIRMWAREVERSION_MINOR:1:
MEM_SERVOVERSION_MAJOR:3:
MEM_SERVOVERSION_MINOR:4:
# etc...
Я пытался преобразовать его в int, прежде чем использовать его в качестве индекса в присваивании, он еще раз жалуется на то, что это список: «аргумент int() должен быть строкой, байтоподобным объектом или действительным числом, а не списком»
[*]Тогда ОК, ЕСЛИ ТЫ СКАЖИТЕ, ЧТО ВЫ СПИСОК, Я БУДУ ОТНОСИТЬСЯ К ВАМ КАК К ОДНОМУ (я не думал, что это сработает, я просто хотел посмотреть, что получится):
Код: Выделить всё
MEM_strings = [False] * 71
for var_name, var_value in (list(globals().items())[29:]):
MEM_strings[var_value[0]] = var_name
Итак, вкратце var_value говорит это список, когда я пытаюсь обращаться с ним как с целым числом, и говорит, что это целое число, когда я пытаюсь обращаться с ним как со списком. Я подозреваю, что что-то упускаю из точной структуры списка, который я создаю с помощью «list(globals().items())», или неправильно обрабатываю его элементы (я полагаю, что каждый элемент будет кортежем). Я в замешательстве, поскольку вывод оператора печати предполагает, что мой код должен работать так, как задумано.
Подробнее здесь: https://stackoverflow.com/questions/793 ... -it-like-a
Мобильная версия