4

私はPythonを初めて使用するので、これが可能かどうかはわかりません。文字列のリストから変数名のリストを作成しようとしているので、新しく作成した変数に値を割り当てることができます。

私は別の同様の質問を見ましたが、キーと値のディクトペイがすでにありました。

これが私のコードです:

def handy(self):
    a = raw_input('How many hands? ')
    for i in range(int(a)):
        h = "hand" + str(i+ 1)
            self.list_of_hands.append(h)
            # would like to create variable names from self.list_of_hands
            # something like "hand1 = self.do_something(i)"
            print h
    print self.list_of_hands

いくつかの答えを踏まえて、次のコメントを追加します。次に、各変数にdictを割り当てます。それで、辞書の辞書を作成できますか?

4

3 に答える 3

4

文字列をキーにして辞書を作ってみませんか?

>>> class test():
    def handy(self):
        a = raw_input('How many hands? ')
        d = { "hand" + str(i + 1) : self.do_something(i) for i in range(int(a)) }

        keys = d.keys()
        keys.sort()
        for x in keys:
            print x, '=', d[x]

    def do_something(self, i):
        return "something " + str(i)

>>> test().handy()
How many hands? 4
hand1 = something 0
hand2 = something 1
hand3 = something 2
hand4 = something 3

編集:辞書を値として辞書に保存できるかどうかを尋ねる質問を更新しました。はい、できます:

>>> d = { i : { j : str(i) + str(j) for j in range(5) } for i in range(5) }
>>> d[1][2]
'12'
>>> d[4][1]
'41'
>>> d[2]
{0: '20', 1: '21', 2: '22', 3: '23', 4: '24'}
>> d[5] = { 1 : '51' }
>> d[5][1]
'51'
于 2012-08-22T05:31:34.843 に答える
2

最後に数字だけが異なる複数の変数(、、hand1などhand2)がある場合は、コンテナーが必要です。

辞書が最も効果的だと思います。

self.hands = {}
self.hands[h] = self.do_something(i)

辞書の個々のキーに簡単にアクセスできます。

self.hands['hand1']
于 2012-08-22T05:28:26.310 に答える
1
h = "hand" + str(i+ 1)
vars()[h] = do_something(i)

これで、hand1を呼び出してdo_something()を呼び出すことができます

于 2012-08-22T06:23:52.650 に答える