python前n项和存为一个数组_在Python中存储多个数组
我正在編寫(xiě)一個(gè)程序來(lái)模擬像Gallup或Rasmussen這樣的公司每天發(fā)布的實(shí)際投票數(shù)據(jù):www.gallup.com和www.rassmussenreports.com
我正在使用強(qiáng)力方法,計(jì)算機(jī)生成一些隨機(jī)的每日輪詢數(shù)據(jù),然后計(jì)算三天平均值,以查看隨機(jī)數(shù)據(jù)的平均值是否與民意測(cè)驗(yàn)數(shù)字相匹配. (大多數(shù)公司調(diào)查數(shù)字是三天平均值)
目前,它適用于一次迭代,但我的目標(biāo)是讓它產(chǎn)生與平均輪詢數(shù)據(jù)匹配的最常見(jiàn)模擬.然后我可以將代碼改為1到1000次迭代.
這是我的問(wèn)題.在測(cè)試結(jié)束時(shí),我在一個(gè)變量中有一個(gè)數(shù)組,看起來(lái)像這樣:
[40.1, 39.4, 56.7, 60.0, 20.0 ..... 19.0]
該程序當(dāng)前為每個(gè)正確的模擬生成一個(gè)數(shù)組.我可以將每個(gè)數(shù)組存儲(chǔ)在一個(gè)變量中,但是我必須有一個(gè)程序可以生成1到1000個(gè)變量,具體取決于我請(qǐng)求的迭代次數(shù)!?
我該如何避免這種情況?我知道有一種智能的方法,不需要程序生成變量來(lái)存儲(chǔ)數(shù)組,具體取決于我想要的模擬數(shù)量.
麥凱恩的代碼測(cè)試:
test = []
while x < 5:
test = round(100*random.random())
mctest.append(test)
x = x +1
mctestavg = (mctest[0] + mctest[1] + mctest[2])/3
#mcavg is real data
if mctestavg == mcavg[2]:
mcwork = mctest
如何在不創(chuàng)建多個(gè)mcwork變量的情況下重復(fù)?
解決方法:
會(huì)這樣的嗎?
from random import randint
mcworks = []
for n in xrange(NUM_ITERATIONS):
mctest = [randint(0, 100) for i in xrange(5)]
if sum(mctest[:3])/3 == mcavg[2]:
mcworks.append(mctest) # mcavg is real data
最后,您將看到一個(gè)有效的mctest列表列表.
我改變了什么:
>使用list comprehension來(lái)構(gòu)建數(shù)據(jù)而不是for循環(huán)
>使用random.randint獲取隨機(jī)整數(shù)
>使用slices并求和計(jì)算前三項(xiàng)的平均值
>(回答你的實(shí)際問(wèn)題:-))將結(jié)果放在mcworks列表中,而不是為每次迭代創(chuàng)建一個(gè)新變量
標(biāo)簽:python,arrays
總結(jié)
以上是生活随笔為你收集整理的python前n项和存为一个数组_在Python中存储多个数组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: pajek软件使用方法_使用Jco远程连
- 下一篇: python turtle画房子详细解释