0

リストで始まり、a=[1]次にそれを変更するpythonプログラムが必要です...次に2別の要素を追加すると、リストが次のようになり、別の要素を追加して次のようになり、 11個の要素が含まれるまで続きます5 に等しいので、351,11,25,51,1,15,5,5,5,5,5,5,5,5,5,5

4

4 に答える 4

3
from itertools import chain, product

n = range(1, 6)
for a in chain.from_iterable(product(n, repeat=i) for i in range(1, 12)):
    # do whatever you want to with a
于 2012-08-06T20:20:41.553 に答える
2

forあなたは一緒にループを使うことができますitertools.product()

from itertools import product

for n in range(1, 12):
    for a in product(range(1, 6), repeat=n):
        # Do whatever you want to do for each of the tuples

これにより、反復ごとに変更される単一のリストが作成されるのではなく、反復ごとに新しいタプルが作成されます。

于 2012-08-06T20:20:58.077 に答える
2

これは宿題の質問のように思われるので、あなたは正しい軌道に乗る答えを得るだけです。

私には、次の動作が必要なようです。

[1]
[2]
[3]
[4]
[5]
[1,1]
[1,2]
[1,3]
[1,4]
[1,5]
[2,5]

したがって、要素を前方に追加しているように見えますが、要素を後方にインクリメントしています。

モジュラー演算を調べて、リストを1に戻すために逆方向にインクリメントする方法を確認します。

それを行ったら、(x mod 4)+1の範囲を検討してください。

于 2012-08-06T20:22:32.147 に答える
0

これは、プロセスに沿った任意の状態でこのリストを受け取り、それを処理する方法を知っている関数です。申し訳ありませんが、その長い答えは、私ができる限り多くの助けを提供したかった. そして、私はコードが最も素晴らしいものではないことを知っています。

def growth(mylist):
    new = False
    i = 0
    mylist = [r for r in reversed(mylist)]
    while new is False:
        if mylist[i] < 5:
            mylist[i] += 1
            break
        elif i == len(mylist)-1:
            new = True
        else:
            i+=1
        if i >= len(mylist):
            break
    if new == True:
        mylist = [1 for r in xrange(len(mylist)+1)]
    mylist = [r for r in reversed(mylist)]
    return mylist

いくつかのテスト:

#get at start:
a = [1]
print a
for i in xrange(10):
    a = growth(a)
    print a

結果:

>>> 
[1]
[2]
[3]
[4]
[5]
[1, 1]
[1, 2]
[1, 3]
[1, 4]
[1, 5]
[2, 5]

print    
#get in middle:
a = [1,3]
print a
for i in xrange(10):
    a = growth(a)
    print a

結果:

>>>
[1, 3]
[1, 4]
[1, 5]
[2, 5]
[3, 5]
[4, 5]
[5, 5]
[1, 1, 1]
[1, 1, 2]
[1, 1, 3]
[1, 1, 4]

そして最後に:

print
#get late:
a = [1,1,3,5]
print a
for i in xrange(10):
    a = growth(a)
    print a

結果:

>>>
[1, 1, 3, 5]
[1, 1, 4, 5]
[1, 1, 5, 5]
[1, 2, 5, 5]
[1, 3, 5, 5]
[1, 4, 5, 5]
[1, 5, 5, 5]
[2, 5, 5, 5]
[3, 5, 5, 5]
[4, 5, 5, 5]
[5, 5, 5, 5]
于 2012-08-06T21:05:56.743 に答える