我需要将row(x)
和column(y)
的数量作为用逗号等分隔的用户输入,并从中创建一个2D数组。
其中array[x][y]=x*j
这就是我想要的:
userInput = raw_input("Enter values for row and column number:\t").split(",")
for x in range(userInput):
for y in range(userInput[x]):
userInput[x][y]=x*y
print(userInput[x][y])
答案 0 :(得分:1)
您的代码存在一些问题。
当您阅读用户输入时,您会获得字符串。如果您想对该输入进行算术运算,则必须将其转换为数字。
您的代码有点令人困惑,因为您使用userInput
作为初始用户输入,但之后您尝试将其用于您正在构建的数字网格。
您尝试在userInput[x][y]
存在之前设置它,这样就无法运行了。使用Python列表的常用方法是在其末尾添加内容。
这是您的代码的修改版本。
from __future__ import print_function
user_input = raw_input("Enter values for row and column number: ")
rows, cols = user_input.split(",")
rows = int(rows)
cols = int(cols)
grid = []
for x in range(rows):
row = []
for y in range(cols):
row.append(x * y)
grid.append(row)
print(row)
print()
print(grid)
<强>演示强>
Enter values for row and column number: 4,5
[0, 0, 0, 0, 0]
[0, 1, 2, 3, 4]
[0, 2, 4, 6, 8]
[0, 3, 6, 9, 12]
[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12]]
顺便说一下,既然你刚刚开始学习Python,你应该学习Python 3.如果你真的需要,你可以回去学习老式的Python 2。
答案 1 :(得分:0)
您可以使用嵌套列表解析来完成:
X, Y = raw_input("Enter values for row and column number:\t").split(",")
X = int(X)
Y = int(Y)
array = [[x*y for y in range(Y)] for x in range(x)]
第一行将为行和列输入的值绑定到X
和Y
。这些是字符串,因此它们将转换为整数以便在range()
中使用。最后,列表理解创建了&#34;数组&#34;表示为列表清单。