我想按遞增順序添加隨機生成的值,而不是在陳述句中添加固定值0.2和0.5值if else。有人可以指導我怎么做?提前致謝。
我的代碼是
N=10
dta=[]
x=0.0
for i in range(N):
dta.append(x)
if(i<5):
x=x 0.2 #here instead of 0.2 randomly generated data in range 0.1 to 0.2
#should be added( example it may be 0.15,0.16....)
else:
x=x 0.5 #here instead of 0.5 randomly generated data in range 0.3 to 0.5
#should be added
print(dta)
uj5u.com熱心網友回復:
這應該這樣做:
import random
N=10
dta=[]
x=0.0
for i in range(N):
dta.append(x)
if(i<5):
x = random.uniform(0.1, 0.2)
else:
x = random.uniform(0.3, 0.5)
print(dta)
樣本輸出:
[0.0, 0.13515152101736566, 0.2866133692895604, 0.4608222800319004, 0.6003500994767033, 0.7898596366391699, 1.2677308143972574, 1.571917695358207, 1.8899333979603337, 2.2967764098732637]
更新:
如OP的評論中所示,要使值本身在范圍內0.1, 0.2或0.3, 0.5按遞增順序排列,您可以這樣做:
import random
N=10
dta = sorted([random.uniform(*(0.1, 0.2) if i < 5 else (0.3, 0.5)) for i in range(N)])
print(dta)
樣本輸出:
[0.10928830948278306, 0.13885822930882388, 0.15861800478212257, 0.16539989224271684, 0.18145832131929895, 0.34643148884688224, 0.3570560993108919, 0.44518489503000336, 0.48017733976314136, 0.4992591196660774]
如果您更喜歡更易于閱讀的方法,則可以執行相同的操作:
import random
N=10
dta=[]
for i in range(N):
if(i<5):
x = random.uniform(0.1, 0.2)
else:
x = random.uniform(0.3, 0.5)
dta.append(x)
dta.sort()
print(dta)
uj5u.com熱心網友回復:
我編輯的是,而不是x=x 0.5或 0.2,x =仍將添加x到該數字。
N=10
dta=[]
x=0.0
for i in range(N):
dta.append(x)
if(i<5):
x =0.2
else:
x =0.5
print(dta)
這是我為您擴展的其他代碼:
from random import uniform
for i in range(10)
dta = [uniform(0.1, 0.2)]
if i < 5:
x = random.uniform(0.1, 0.2)
else
x = random.uniform(0.3, 0.5)
print(dta)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/483885.html
標籤:Python python-3.x for循环 if 语句
