2012-03-02 8 views
0

私は変数のセットを持っています:x1x2、、x4x5です。別の変数に変数を含める方法

x1 = 10 
x2 = 20 
x3 = 30 
x4 = 40 
x5 = 50 
number=1 
for looper in range(0,4): 
    xnumber = xnumber + 10 
    number = number + 1 

取得するには:などx1 = 20x2 = 30、 を私が得たので:

"'xnumber' is not defined" 

私はこれをどのように修正することができますか?

答えて

3

代わりにx[0] ... x[4]を定義し、xnumberx[number]に置き換えて配列を使用してください。また、あなたがnumberを定義せずに行うとループインデックスを使用することができます。

x = range(5) 
x[0] = 10 
x[1] = 2 
x[2] = 30 
x[3] = 40 
x[4] = 50 
for i in range(0,5): 
    x[i] = x[i] + 10 
0

整数は変更可能ではありません。必要なものを得るための唯一の方法は、各変数を新しい整数に再割り当てすることです。個々の変数を個別に割り当てる必要があります。ループを作成する方法はありません。

私が言っていることの一例として、値が変更可能であれば、あなたができることがあります。私はintの代わりにリストを含むように各変数を変更しました。

x1=[10] 
x2=[20] 
x3=[30] 
x4=[40] 
x5=[50] 
vars = [x1, x2, x3, x4, x5] 
for looper in range(0,4): 
    vars[looper][0] = vars[looper][0] + 10 
print x1,x2,x3,x4,x5 
[20] [30] [40] [50] [50] 

それはx5をミスしてlooperはわずか3に上がることに注意してください。より良い

+1

この回答は、まったく異なる質問に対する正解です。 :-) –

+0

@ LennartRegebro、あなたは何を意味するのか分かりません。問題は、ループ内から個々の変数を更新する方法でした。私は、個々の変数を個別に使用することができないという私の答えに立っています。変数をリストに置き換えることを提案する他の答えは、問題を回避しています。 –

+0

@LennartRegebro、私の編集を参照してください。質問に対する最もクリーンな解決策ではありませんが、私の答えはトピックではないことが証明されています。 –

3

このためにリストを使用します。

x = [10, 2, 30, 40, 50] 
for index, value in enumerate(x): 
    x[index] = value + 10 

や辞書、あなたは自分の価値観のためのいくつかの名前 "したい場合:

x = {'x1': 10, 'x2': 2, 'x3': 30, 'x4': 40, 'x5': 50} 
for key, value in x.items(): 
    x[key] = value + 10 

やクラス:

class x: 
    x1 = 10 
    x2 = 2 
    x3 = 30 
    x4 = 40 
    x5 = 50 

for index in range(1, 6): 
    attr_name = 'x%d' % index 
    setattr(x, attr_name, getattr(x, attr_name) + 10) 
+0

これは素晴らしいことです!ありがとう。さらに、ある変数を別の変数に含める方法はありますか?たとえば、x1、x2などが整数値を持たない場合はどうでしょうか? – rollorox202

+0

はい、listとdictの値で、class属性はリストやdictsを含むどんなオブジェクトでもかまいません: 'x = {'first_key':1、 '2':[1,2、[4,5]]、3:{' a ':7}} ' – warvariuc

0

辞書を使用します。

>>> d = {'x1':10,'x2':20,'x3':30,'x4':40,'x5':50} 
>>> for key in d: 
... d[key] = d[key] + 10 
>>> for key in sorted(d): 
... print key, '=', d[key] 
... 
x1 = 20 
x2 = 30 
x3 = 40 
x4 = 50 
x5 = 60 
関連する問題