获得结果后编辑输出

时间:2017-01-21 08:07:56

标签: python python-2.7

编写一个程序,它取2位数,X,Y作为输入,并生成一个二维数组。数组的第i行和第j列中的元素值应为i * j。 注意:i = 0,1 ..,X-1; J = 0,1,¡Y-1

实施例

假设为程序提供以下输入: 3,5 然后,程序的输出应该是: [[0,0,0,0,0],[0,1,2,3,4],[0,2,4,6,8]]

我的节目:

x=int(raw_input())
y=int(raw_input())

l=[]

for i in range(x):    

   for j in range(y):
         l.append((i*j))
print l

我的输出:

[0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 2, 4, 6, 8]

我无法像最后一样接触:

[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]] 

有人可以建议。感谢。

2 个答案:

答案 0 :(得分:1)

length()

答案 1 :(得分:0)

x = int(raw_input())
y = int(raw_input())

l = []

列表信息:https://docs.python.org/2/tutorial/datastructures.html

for i in range(x):
    l.append([]) # Add a empty nested list

    for j in range(y):
        l[-1].append(i * j) # append to index of nested empty list

INPUT:INT(3,5)

OUTPUT:l = [[0,0,0,0,0],[0,1,2,3,4],[0,2,4,6,8]]

列表理解:

如果您正在寻找一个较短的脚本,您可以尝试列表理解来代替您的for循环。

例如:

l = [[j * i for j in range(y)]for i in range(x)]

INPUT INT(3,5)

OUTPUT:l = [[0,0,0,0,0],[0,1,2,3,4],[0,2,4,6,8]]