0

それぞれの数値のリストを 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 

var=['16', '17', '13', '11', '5', '3'] たとえば、変数 A から F に割り当てる必要があります。後で計算するので、扱いにくいものはありません。

編集: 次のリストを変数 AZ に割り当て、後の計算で新しい変数を使用する必要があるときに、タグ V を持つ別の行が表示されるまで、計算で変数を使用する必要があります。

入力は次の形式になります。

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^

他の行は、実行されるさまざまな計算です。

4

3 に答える 3

0

文字列で名前が付けられた変数は、グローバル ディクショナリに書き込むことで割り当てることができます。

varname="A"
globals()[varname] = 16   # equivalent to A = 16

リストを操作してvar、文字列「A」、「B」を生成し、それぞれに順番に割り当てることができます。

しかし、この種の策略は、おそらくあなたが間違ったことをしている兆候です。

(参考) http://www.diveintopython.net/html_processing/locals_and_globals.html

于 2013-09-24T22:05:48.790 に答える