-1

Python で for ループの出力値を変数に代入したいと考えています。

onetoten = range(1,5)
for count in onetoten:
    print (count)

上記の for ループの出力は次のとおりです。

1
2
3
4

s1 = 1この出力を、s2 = 2s3 =3などの変数のリストに割り当てたいと思いますs4 = 4。ただし、リストが 4 までになる特定の数はありません。スクリプトの以前の出力に基づいて異なる場合があります。したがって、forループの出力ごとに、変数の数も増やすか、出力の数に基づいて変数を使用する必要があります。これについて助けてください。

enumerate を使用するための応答を得た前に同じタイプの質問をしましたが、これは正確には python ではなく、Jython でスクリプトを使用しているため、Jython で enumerate を使用していません。

4

4 に答える 4

4

s1 = 1この出力を、s2 = 2s3 =3などの変数のリストに割り当てたいと思いますs4 = 4。ただし、リストが 4 までになる特定の数はありません。スクリプトの以前の出力に基づいて異なる場合があります。

これは、複数の変数を使用したくないことを意味します。値をシーケンスに格納しますs。代わりに、次を使用できます。sns[n-1]

>>> s = range(1,5)
>>> s[0]
1
>>> s[1]
2
etc.

より柔軟な命名、つまり特定の識別子と値のペアが必要な場合は、dict提案されている as の使用を検討する必要があります。

于 2013-07-09T15:09:39.270 に答える
2

変数の数がわかっている場合は、シーケンス アンパックを使用します。

>>> s1,s2,s3,s4 = range(1,5)
>>> s1
1
>>> s2
2
>>> s3
3
>>> s4
4

動的変数の作成について話しているのであれば、それは悪い考えです。私は dict を好みます。

>>> dic = {}
>>> for x in range(1,5):
...     dic['s' + str(x)] = x
...     
>>> dic['s1']
1
>>> dic['s2']
2

次を使用して Python で動的変数を作成できますglobals()が、推奨されません。

>>> globals()['foo'] = 'bar'
>>> foo
'bar'
于 2013-07-09T15:07:41.403 に答える