0

我真的很困惑,需要你的帮助我试过但不认为我得到了我应该得到的

5a。(5 分)编写一个函数,输入参数是一个整数 x,并生成一个包含那么多 0 的列表并返回该列表。
5b.( 6 pts) 现在编写一个函数,将相同的整数作为输入参数,并使用第一个函数生成 x 个 0 列表的列表(因此您将在第一个函数中创建的列表附加到你的新清单。

5c.(6 分)最后,编写第三个循环 5 次的函数。每次,它生成一个介于 0 和 x 之间的第一个随机数 (a),然后生成一个介于 0 和 x 之间的第二个随机数 (b)。它使用这两个数字将 [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 回答