请教一个小程序的写法,谢谢~

请教一个小程序的写法,谢谢~

如何写一个8×10的矩阵,然后随机将10%的a(相当于8个a)和90%的b(72个b)放到这80个位置?
谢谢~
from random import shuffle

ROW = 8
COL = 10

A_PERC = .1
B_PERC = .9

def makeArray(a, b):
    total = ROW * COL
    tempList = [a] * total * A_PERC + [b] * total * B_PERC
    shuffle(tempList)
    return [tempList[COL*i:COL*i+COL] for i in range(ROW)]

print makeArray('a', 'b')


我把常数都拿出来了,
最后变成list of list的一步略嫌麻烦,但一时没想到更好的办法。

一开始忘了加from random import ... 那句

[[i] 本帖最后由 MingStar@CU 于 2006-8-8 18:34 编辑 [/i]]
不知你有没有运行过,

[a] * total * A_PERC

因为A_PERC是浮点数,所以total*A_PERC得到的是一个浮点数,会报错,应该:

[a] * int(total * A_PERC)

分片来生成组织的方法倒是很有意思。
非常感谢~~