很抱歉这个菜鸟级别的问题,但我正在尝试获取 10 个名称的列表并将它们放入 3x4 矩阵中,但是当值的输入是由循环。
所以我没有去 student0 = raw_input("Enter student 1's name: ")
十次
students = []
for num in range(1, 11):
students.append({
"name": raw_input("Enter Student %i's name: " % num),
"absences": raw_input("Enter Student %i's absences: " % num)
})
但是对于第二种(也是更受欢迎的)形式,我不知道如何制作矩阵。在我可以输入类似的内容之前:
print("\n\n Student Seating: \n")
matrix = [[student0 + '\t\t', student1 + '\t\t', student2 + '\t\t'], [student3 + '\t\t', student4 + '\t\t', student5 + '\t\t'], [student6 + '\t\t', 'Empty' + '\t\t', student7 + '\t\t'], ['Empty' + '\t\t', student8 + '\t\t', student9 + '\t\t']]
for row in matrix:
print ' '.join(row)
但现在(显然)这行不通了。我该如何解决这个问题,以便我可以将我的列表放入矩阵 (3x4) 格式?再次为这个愚蠢的问题道歉,非常感谢您的帮助!
您可以这样做以将学生组划分为子列表。
>>> students = [1,2,3,4,5,6,7,8,9,10] # assume numbers are students
>>> matrix = [ students[i:i+4] for i in range(0,len(students),4) ]
>>> for l in matrix:
... print l
...
[1, 2, 3, 4]
[5, 6, 7, 8]
[9, 10]
这样做的好处是,无论您的 students
列表有多大,matrix
的最大宽度始终为 4。
我是一名优秀的程序员,十分优秀!