Я хочу запустить программу в Python, которая петли несколько раз, каждый раз создавая новый массив - то есть никакие данные не перезаписываются - с массивом с ссылкой на номер цикла, так что я могу назвать это в последующих циклах. Например, я мог бы захотеть создать массивы x0, x1, x2, ..., xi в цикле от 0 до i, а затем вызвать каждый из них в другом цикле, работающем над теми же переменными. (По сути, это эквивалент возможности перевести переменную в строку как 'string %d %(x)'
).Как переименовать переменные в цикле в Python
ответ
Использование Dict:
arraysDict = {}
for i in range(0,3):
arraysDict['x{0}'.format(i)] = [1,2,3]
print arraysDict
# {'x2': [1, 2, 3], 'x0': [1, 2, 3], 'x1': [1, 2, 3]}
print arraysDict['x1']
# [1,2,3]
Использование списка:
arraysList = []
for i in range(0,3):
arraysList.append([1,2,3])
print arraysList
# [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
print arraysList[1]
# [1, 2, 3]
Для этого вы можете создать объект, а затем использовать функцию setattr. В основном, это будет работать так:
setattr(myobject, 'string', value)
Это то же самое, как делают: myobject.string = value
Вы можете получить доступ к globals()
словарь ввести новые переменные. Как:
for i in range(0,5):
globals()['x'+str(i)] = i
После этого цикла вы получите
>>> x0, x1, x2, x3, x4
(0, 1, 2, 3, 4)
Обратите внимание, что в соответствии с documentation, вы не должны использовать locals()
словарь, как изменения в этот не может повлиять на значения, используемые переводчик.
За исключением того, что он не работает для 'locals()' –
Да, я уже изменил свой ответ. Хотя кажется, что это работает, если вы вводите новые переменные (и не меняете их значение впоследствии) – MartinStettner
Обратите внимание на каждого, кто читает этот ответ: ПОЖАЛУЙСТА, НЕ ДОЛЖНЫ СДЕЛАТЬ ТАКОЕ СТУПИДНОЕ ВЕЩАНИЕ. Правильное решение - использовать dict или list. –
Опираясь на имена переменных и их изменение, это не лучший способ.
Как уже отмечалось в комментариях, было бы лучше использовать dict или список.
- 1. Как создать переменные в цикле в Python
- 2. переименовать переменные класса в python без самозапуска
- 3. Переименовать глобальные переменные в R
- 4. Переименовать переменные в подклассе
- 5. Как переименовать файлы в цикле в Perl
- 6. Как переименовать переменную в цикле в MATLAB?
- 7. Python глобальные переменные не работает в цикле
- 8. Как создать переменные в цикле?
- 9. Как создать фиктивные переменные в цикле в python?
- 10. Как сбросить некоторые переменные функции в Python в цикле
- 11. питона переменные в цикле
- 12. Переменные определения в цикле
- 13. Переменные в цикле
- 14. объединяет переменные в цикле?
- 15. Счетные переменные в цикле
- 16. Переменные, объявленные в цикле
- 17. Переменные в цикле
- 18. Как переименовать экспортируемые переменные окружения в докер
- 19. Как использовать переменные в цикле с диапазоном()? (Python)
- 20. Python: как сделать переменные, объявленные в цикле, невидимыми извне?
- 21. MATLAB: Новые переменные/переменные name в цикле
- 22. Python: как переименовать файл в python?
- 23. Нужно ли в цикле Loop иметь локальные переменные в Python?
- 24. Переименовать файл в Python
- 25. Переменные в цикле объектива-c
- 26. сделать переменные в цикле Еогеасп
- 27. Имитированный отжиг в Python, переменные в цикле While?
- 28. Динамически распределять переменные в цикле for в python
- 29. Джейд интерпретируют переменные в цикле
- 30. Динамические переменные в цикле for?
Лучший способ не делать этого ... использовать список (или словарь) вместо – jamylak
Ваша проблема заключается в том, что вы используют локальные переменные, где вы должны использовать список или словарь * вместо *. –