Мне нужно присвоить список чисел каждой переменной от A до Z. Однако длина этого списка будет различаться. Есть ли способ сделать это в цикле? до сих пор я:динамически назначая переменные в цикле
file=open('inputfile.txt')
data=file.readlines()
vardict={1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E', 6: 'F',
7: 'G', 8: 'H', 9: 'I', 10: 'J', 11: 'K', 12: 'L',
13: 'M', 14: 'N', 15: 'O', 16: 'P', 17: 'Q',
18: 'R', 19: 'S', 20: 'T', 21: 'U', 22: 'V',
23: 'W', 24: 'X', 25: 'Y', 26: 'Z'}
for line in data:
if line[0:1]=='V': #v is a marker that this line needs to assign variables.
num=1
var=line.split()
var=var[1:] #remove the tag
for entry in var:
x=vardict[num] #this will assign x to the correct variable
#need some lines here to create a variable from whatever is in x
num+=1
переменная = [ '16', '17', '13', '11', '5', '3'], например, должен быть присвоен переменных A до F. Мне нужно будет использовать эти переменные много в последующих вычислениях, поэтому ничего слишком громоздкого.
EDIT: мне нужно будет использовать переменные в вычислениях, пока не появится другая строка с тегом V, когда мне нужно будет присвоить следующий список переменным A-Z и использовать новые переменные в последующих вычислениях.
вход будет иметь такую форму:
V 1 -2 3 4 5 7 8 9 10
I (A+B)-C*F
I C*F-(A+B)
R -+AB*CF
V 16 17 13 11 5 3
O AB+C-D*E/F^
, где другие линии различные расчеты должны быть сделаны.
я упускаю что-то? Это то, для чего нужны массивы (списки или словари на Python). Почему вы не хотите иметь список переменных, индексированных буквой от «A» до «Z»? Если вы настаиваете, вы можете делать то, что хотите, с 'eval', но это будет очень уродливо ... – nickie
Что вы надеетесь достичь? Что вы делаете с 'x'? Вы их храните? Прямо сейчас вы просто назначаете 'vardict [last entry of var]' to 'x'. – wflynny
Вы знаете, что вы можете просто сделать 'для строки в файле:'? –