我创建了一个二维数组,如:
>>> 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'是一个元素,我怎么能以上面的形式呢?感谢您的帮助。
答案 0 :(得分:3)
您不必事先创建列表。你可以像这样
在列表理解中直接创建它们xml.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
....
xml.AddElem("Person", "Alive");
xml.SetAttrib("age", "12");
xml.SetAttrib("passed", "Yes");
在这里,每当调用>>> 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'
是空格字符上的字符串(以获取{{} 1}})并使用split
函数将每个拆分字符串转换为整数。
答案 1 :(得分:1)
您可以拆分这样的值:
for i in range(3):
a[i] = input().split(' ')
答案 2 :(得分:1)
你可以在你的第一个列表comp中拆分并映射到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']]
答案 3 :(得分:1)
要进行空格分隔输入,您需要在" "
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