如何读取用户的输入并创建二维列表?
How can I read inputs from user and create a 2-D List?
我创建了一个二维数组,例如:
>>> a = [[0 for col in range(3)] for row in range(3)]
然后
>>> for i in range(3):
... for j in range(3):
... a[i][j]=input()
...
1 2 3
4 5 6
7 8 9
但是没有成功,python认为'1 2 3'是一个元素,我怎么能用上面的形式做到这一点?感谢您的帮助。
您可以像这样拆分值:
for i in range(3):
a[i] = input().split(' ')
您不必事先创建列表。您可以像这样在列表理解中直接创建它们
>>> a = [[int(item) for item in input().split()] for row in range(3)]
1 2 3
4 5 6
7 8 9
>>> a
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
在这里,每当调用 input
时,我们输入的任何内容都将被读取为单个字符串 ('1 2 3'
),我们 split
空白字符上的字符串(以获取['1', '2', '3']
) 并将每个拆分字符串转换为整数,使用 int
函数。
您可以在您的第一个列表组合中拆分并映射到 int,您不需要先创建列表,但请记住转换为 int 会使您的程序因无效输入而崩溃:
a = [list(map(int,input().split())) for row in range(3)]
print(a)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
当然,如果你不想让整数按空格分割:
a = [input().split() for row in range(3)]
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]
要采用 space 分隔输入,您需要在 " "
上拆分输入文本
a=[[0 for col in range(3)] for row in range(3)]
for i in range(3):
a[i][0], a[i][1], a[i][2] = map(int, raw_input().split())
print a
我创建了一个二维数组,例如:
>>> a = [[0 for col in range(3)] for row in range(3)]
然后
>>> for i in range(3):
... for j in range(3):
... a[i][j]=input()
...
1 2 3
4 5 6
7 8 9
但是没有成功,python认为'1 2 3'是一个元素,我怎么能用上面的形式做到这一点?感谢您的帮助。
您可以像这样拆分值:
for i in range(3):
a[i] = input().split(' ')
您不必事先创建列表。您可以像这样在列表理解中直接创建它们
>>> a = [[int(item) for item in input().split()] for row in range(3)]
1 2 3
4 5 6
7 8 9
>>> a
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
在这里,每当调用 input
时,我们输入的任何内容都将被读取为单个字符串 ('1 2 3'
),我们 split
空白字符上的字符串(以获取['1', '2', '3']
) 并将每个拆分字符串转换为整数,使用 int
函数。
您可以在您的第一个列表组合中拆分并映射到 int,您不需要先创建列表,但请记住转换为 int 会使您的程序因无效输入而崩溃:
a = [list(map(int,input().split())) for row in range(3)]
print(a)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
当然,如果你不想让整数按空格分割:
a = [input().split() for row in range(3)]
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]
要采用 space 分隔输入,您需要在 " "
a=[[0 for col in range(3)] for row in range(3)]
for i in range(3):
a[i][0], a[i][1], a[i][2] = map(int, raw_input().split())
print a