2012-12-02 78 views
1

我有一个矩阵(列表形式),我试图做两件事情。翻转矩阵中的随机元素

的第一件事是在矩阵中选择一个随机元素和1其切换到0或0到1

第二件事是做同样的事情,但对于一个以上的元素;我需要先解决第一个问题!

我有开关功能(翻转0和1),下一行尝试切换0和矩阵大小减1之间的矩阵(矩阵)中的随机元素(否则它会是超出范围)。

我想问题是int(size-1)部分。只是使用大小的作品,但我需要它是大小1。

“尺寸”变量不为0

def switch(e): 
    return ''.join('1' if x == '0' else '0' for x in str(e)) 

switch(matrx[randint(0,(size-1))][randint(0,(size-1))]) 

ValueError: empty range for randrange() (0,0, 0) 

回答

2

看起来像你的尺寸有0.1 的错误是从randint函数的值...

+0

@userrandomnums:如果您查看'.../lib/random.py'中的第241行,你会发现'randint(a,b)'被简单地实现为'randrange(a,b + 1)'。 – martineau

+0

虽然大小值不是0:S – userrandomnums

+0

忘了全球。 – userrandomnums