随机游走 Python 运动循环
Random walk Python exercise loop
我正在做python运动,我做不完。我需要创建一个数组并填充它 25 个数字,每个数字都是前一个数字和从集合 (-5, 5) 中得出的值的总和。
将 numpy 导入为 np
随机导入
def prog_list(mylist):
mylist = [0]
addlist = [-5,5]
sum_list = 0
for i in mylist:
if len(mylist) < 25:
sum_list = random.choice(addlist) + mylist[i-1]
mylist.append(sum_list)
else:
return mylist
for x in prog_list(mylist):
print(x)
当我打印 x 时,我得到了
IndexError: list index out of range
for i in mylist:
if len(mylist) < 100:
sum_list = random.choice(addlist) + mylist[i-1]
mylist.append(sum_list)
else:
return mylist
此构造将 mylist
的元素值设为 i
。第一个元素是 0
所以你得到 {-5,5}
+ mylist[-1]
之一([-1]
表示 python 语言中的最后一个元素),这导致 -5
或 5
,那么你得到的值减去 1,即 -6
或 4
,但没有足够的元素来获得 -6(即从右边开始的 6)或 4(即左起第 5 个)元素,因此 IndexError
。为避免您可能会使用以下 while
替换 for
while len(mylist) < 100:
sum_list = random.choice(addlist) + mylist[-1]
mylist.append(sum_list)
return mylist
for i in mylist
遍历列表中的项目,因此在加减 5 时的第一步,您将尝试使用 mylist 访问第 (5 - 1) 个或第 (-5 - 1) 个元素[i - 1],这会给你一个 IndexError。
要获取 mylist 的当前最后一个元素,您应该使用
mylist[-1] instead of mylist[i - 1]
这个有效:
def prog_list(n):
mylist = [0]
#addlist = [-5,5]
addlist = list(range(-5, 5+1))
for i in range(1, n):
_sum = random.choice(addlist) + mylist[i-1]
mylist.append(_sum)
return mylist
prog_list(25)
如果你想从 (-5, 5) 中提取任何整数,你需要这个:
addlist = list(range(-5, 5+1))
有一种更简洁的方法,您无需在每次迭代中访问列表:
def prog_list(n):
mylist = []
_sum = 0
#addlist = [-5,5]
addlist = list(range(-5, 5+1))
for i in range(n):
mylist.append(_sum)
_sum += random.choice(addlist)
return mylist
prog_list(25)
我正在做python运动,我做不完。我需要创建一个数组并填充它 25 个数字,每个数字都是前一个数字和从集合 (-5, 5) 中得出的值的总和。
将 numpy 导入为 np 随机导入
def prog_list(mylist):
mylist = [0]
addlist = [-5,5]
sum_list = 0
for i in mylist:
if len(mylist) < 25:
sum_list = random.choice(addlist) + mylist[i-1]
mylist.append(sum_list)
else:
return mylist
for x in prog_list(mylist):
print(x)
当我打印 x 时,我得到了
IndexError: list index out of range
for i in mylist:
if len(mylist) < 100:
sum_list = random.choice(addlist) + mylist[i-1]
mylist.append(sum_list)
else:
return mylist
此构造将 mylist
的元素值设为 i
。第一个元素是 0
所以你得到 {-5,5}
+ mylist[-1]
之一([-1]
表示 python 语言中的最后一个元素),这导致 -5
或 5
,那么你得到的值减去 1,即 -6
或 4
,但没有足够的元素来获得 -6(即从右边开始的 6)或 4(即左起第 5 个)元素,因此 IndexError
。为避免您可能会使用以下 while
for
while len(mylist) < 100:
sum_list = random.choice(addlist) + mylist[-1]
mylist.append(sum_list)
return mylist
for i in mylist
遍历列表中的项目,因此在加减 5 时的第一步,您将尝试使用 mylist 访问第 (5 - 1) 个或第 (-5 - 1) 个元素[i - 1],这会给你一个 IndexError。
要获取 mylist 的当前最后一个元素,您应该使用
mylist[-1] instead of mylist[i - 1]
这个有效:
def prog_list(n):
mylist = [0]
#addlist = [-5,5]
addlist = list(range(-5, 5+1))
for i in range(1, n):
_sum = random.choice(addlist) + mylist[i-1]
mylist.append(_sum)
return mylist
prog_list(25)
如果你想从 (-5, 5) 中提取任何整数,你需要这个:
addlist = list(range(-5, 5+1))
有一种更简洁的方法,您无需在每次迭代中访问列表:
def prog_list(n):
mylist = []
_sum = 0
#addlist = [-5,5]
addlist = list(range(-5, 5+1))
for i in range(n):
mylist.append(_sum)
_sum += random.choice(addlist)
return mylist
prog_list(25)