0
我有點新的Python,所以我想知道是否有完成某事的一種更有效的方式。基本上我需要根據一個隨機數(0或1)創建一個來自兩個其他數組之一的值的數組。目前使用for循環很容易實現,但我只是好奇,如果有更優雅的/蟒蛇上下的方式來做到這一點,似乎對於Python是如何設計的過於笨重:更有效的方式來創建數組
import random
xySet = ['x', 'y']
xP = [10.1, 11.2, 12.3]
yP = [12.5, 13.2, 14.1]
nObser = 10
x = []
p = []
randVals = [random.randint(0,1) for i in range(nObser)]
print randVals
for i in range(nObser):
x.append(xySet[randVals[i]])
if randVals[i]:
p.append(xP[random.randint(0,2)])
else:
p.append(yP[random.randint(0,2)])
print x
print p
這給了我正確的輸出我希望:
[1, 1, 1, 0, 1, 1, 1, 0, 1, 0]
['y', 'y', 'y', 'x', 'y', 'y', 'y', 'x', 'y', 'x']
[12.3, 11.2, 10.1, 13.2, 10.1, 11.2, 12.3, 14.1, 10.1, 13.2]
謝謝!