0

私は本当に混乱していて、あなたの助けが必要です

5a. (5 点) 入力パラメーターとして整数 x を受け取り、その数の 0 のリストを生成してそのリストを返す関数を書きます。
5b.( 6 pts) 入力パラメータとして同じ整数を受け取り、最初の関数を使用して 0 の x リストのリストを生成する関数を作成します (したがって、最初の関数で作成したリストをあなたの新しいリスト。

5c.(6 点) 最後に、5 回ループする 3 番目の関数を書きます。毎回、0 と x の間の最初の乱数 (a) を生成し、次に 0 と x の間の 2 番目の乱数 (b) を生成します。これらの 2 つの数値を使用して、[a][b] のリストのリストを -1 に変更します。戦艦をボードに配置しました (戦艦にはさまざまな長さがあることを知っています。ランダムな長さの戦艦でこれを複雑にしたくありませんでした)。

#5a

def lister(x):
    return([0]*x)

print(lister(15))


#5b

def lister2(x):
    return [lister(x)]*x

print(lister2(3))

#5c

def looplist(x):
    n=5
    a=lister2(x)
    while n>0:
        r1=randrange(0,(x))
        r2=randrange(0,(x))
        a[r1]=-1
        a[r2]=-1
        print(a)
        n-=1

looplist(4)
4

1 に答える 1

0

その最終的な方法でやりたいことは次のとおりだと思います。

a[r1][r2]=-1

二次元配列を作成したので、最初の部分a[r1]で位置 [r1] のリストを取得し、次にこのリストで positionr2にアクセスし、値を に変更します-1

また、単純な for は、while ループを使用した現在のソリューションよりも読みやすいと思います。

for _ in range(5):
     #generate the two rands, etc
于 2013-04-08T15:05:22.763 に答える