我需要做的是
Col 0 Col 1 Col 2
Row 0 1 0 1
Row 1 1 1 1
Row 2 1 1 1
这些数字是完全随机的,但我完全不知道如何制作电路板。问题是我需要能够在之后的列和行中添加数字。我是否必须首先将它放入列表中,然后将它们分开或保持原样,然后用\ t来区分它。
我所拥有的只是一个随机数生成器。我不知道下一步该做什么。
def generate_random_number(size):
number = ""
for i in range(size):
digits = random.randint(0, 1)
numbers = number + str(digits)
return numbers
答案 0 :(得分:2)
我的建议是:选择数据结构,以便以合理的方式处理数据。然后,您可以决定如何可视化数据,但不应影响数据结构的选择。
在这种情况下,将董事会存储为整数的列表(或元组元组)列表可能是合理的。
然后你可以写,例如:
def row_sum(table, i):
return sum(table[i])
def col_sum(table, i):
return sum(row[i] for row in table)
def print_table(table):
print ' '*colsize + '\t' + '\t'.join('Col {}'.format(i) for i, _ in enumerate(t))
for i, row in enumerate(t):
print 'Row {}'.format(i).ljust(colsize), '\t'.join(str(v).rjust(colsize) for v in row)
答案 1 :(得分:1)
我建议创建一个列表列表。它本质上是一个行列表,然后每行有一堆单元格。下面的代码将使用0或1的随机值填充它。还有代码显示如何对行和列值求和。
<强>码强>
import random, pprint
def random_row(size):
return [random.randrange(2) for i in range(size)]
data = [random_row(3) for i in range(3)]
pprint.pprint(data, width=20)
print 'row 1 sum:', sum(data[0])
print 'column 1 sum:', sum(row[0] for row in data)
<强>输出强>
[[1, 0, 0],
[0, 0, 0],
[1, 1, 0]]
row 1 sum: 1
column 1 sum: 2
答案 2 :(得分:0)
查看此代码示例会有帮助吗?
x = []
for row in range(10):
x.append([])
for row in x:
for col in range(10):
row.append(0)
这会使用元组创建一个10x10的零网格。实际上,它是一个包含十个元组的元组,每个元组包含十个数字。
有用的提示,请输入:
print(x)
然后输入:
import pprint
pprint.pprint(x)
你会看到差异。 pprint代表“漂亮的印刷品”。 :)
答案 3 :(得分:0)
我认为你正在寻找像二维“阵列”这样的东西。在python中,您可以使用列表列表来创建您描述的结构。
#first a list of lists
grid=[[],[],[]]
#you can use it like this
# | Col 0 | Col 1 | Col 2
#---------------------------------------------------
# Row 0 | grid[0][0]=1 | grid[0][1]=0 | grid[0][2]=1
# Row 1 | grid[1][0]=1 | grid[1][1]=1 | grid[1][2]=1
# Row 2 | grid[2][0]=1 | grid[2][1]=1 | grid[2][2]=1
在行或列中添加数字非常简单:
def sum_row(row):
return grid[row][0]+grid[row][1]+grid[row][2]
def sum_column(column):
return grid[0][column]+grid[1][column]+grid[2][column]
此外,我不明白你使用randomNumber函数做了什么。您似乎想要返回随机数的字符串版本,但是当您尝试添加列或行的条目时会导致问题。然而,如果你确实试图得到一个数字的字符串,我会这样写:
def generate_random_number(size):
number=""
for i in range(size):
digit = random.randint(0, 1)
number = number + str(digit)
return number