python - 如何在循环中每 x 步创建一个新列表?
问题描述
我正在 python 上绘制一些随机游走函数并尝试创建它,以便它每 1000 步获取随机游走的位置,然后将它们绘制在直方图中。我意识到我每次都可以为 n=1000,2000 等创建一个新列表,只需将 walk 的值附加到该列表,但是有没有办法让 python 每 1000 步创建一个新列表?
import numpy as np
import matplotlib.pyplot as plt
def random_walk(N,d):
walk = d*np.cumsum(2*np.random.binomial(1,.6,N)-1)
return walk
n1=[]
n2=[]
n3=[]
n4=[]
n5=[]
for k in range(5000):
particular_walk = random_walk(5000,2)
n1.append(particular_walk[1000])
n2.append(particular_walk[2000])
n3.append(particular_walk[3000])
n4.append(particular_walk[4000])
n5.append(particular_walk[-1])
plt.hist(n1,bins=20,histtype='step',density=True)
plt.hist(n2,bins=20,histtype='step',density=True)
plt.hist(n3,bins=20,histtype='step',density=True)
plt.hist(n4,bins=20,histtype='step',density=True)
plt.hist(n5,bins=20,histtype='step',density=True)
plt.show()
这是我到目前为止的代码,但我意识到它不起作用。我知道我可以有一个名为“中点”的列表,并将其设置为 2500 处特定步行的位置,但有没有办法自动完成?
解决方案
也许您可以使用 python 字典并在字典中创建列表。
它可能是这样的:
if k%1000 == 0:
rw_dict[str(k/1000)]=[]
其中 str(k/1000) 只是字典中键的名称:1.0、2.0 等。每当您需要对该特定列表进行操作时,都可以使用 rw_dict[list_name] 访问该列表。
我希望这有帮助!
推荐阅读
- javascript - 为什么返回 arr.includes() 与在验证同一数组的条件语句中返回 true 不同?
- python - ValueError:形状 (None, 2) 和 (None, 1) 不兼容
- java - Spring boot @Autowired 在单元测试用例中不起作用
- sql - 提取每个月最高奖金的所有员工。MAX(SUM) 分组依据
- python - 抓取网页
- flutter - 如何计算列表中双倍数据的总和?
- git - 从 git 中的 fork 跟踪文件历史记录
- reactjs - 在 redux 状态化简器中访问对象组件
- pointers - 如何修剪切片并获取结果的索引(索引)?
- python - 如何解决python中的turtle addshape错误?