@PyLearner

Можно ли назначать переменные с помощью итераций FOR?

Задача - каждой букве из 'abcdefgh' назначить значение 1

Вопрос - почему код не работает?
chars = 'abcdefgh'
for char in chars:
    char = 1


На выходе я хотел бы получить следующее:

>>>a
1
>>>b
1
>>>c
1
  • Вопрос задан
  • 242 просмотра
Решения вопроса 3
longclaps
@longclaps
chars = 'abcdefgh'
for char in chars:
    globals()[char] = 1
    
print(a, b, c)

Вообще-то это дрянная идея.
Ответ написан
adugin
@adugin Куратор тега Python
А какую задачу требуется решить? Вероятно, можно обойтись этим:
from collections import namedtuple

Record = namedtuple('Record', 'a, b, c, d, e, f, g, h')
r = Record(*[1]*8)

print(r.a, r.b, r.h)

Или так:
class O():
    pass

o = O()

for attr in 'abcdefgh':
    setattr(o, attr, 1)
    
print(o.a, o.b, o.h)
Ответ написан
Комментировать
SelfiAS
@SelfiAS
▬ PYTHON ▬ JUNIOR ▬
chars = 'abcdefgh'
for x in chars:
    exec('{} = 1'.format(x))
print(a, b, c)

Можно так.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@pfg21
ex-турист
именнованные переменные существуют только в исходном тексте программы. после компиляции их нет.
мож поиграться с хеш-таблицей от имени каждой "переменной" ??
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы