[英]printing matrix (2-d) in python
我正在嘗試將此代碼打印到矩陣中,但不斷得到:
line 22, in <module>
print(matrix[i][j], end=" ")
IndexError: list index out of range
這是我的代碼:
R = int(input("Enter the number of runners:"))
C = int(input("Enter the number of days to log:"))
names_runners = []
runners_time =[]
# Initialize matrix
matrix = []
# For user input
for i in range(R): # A for loop for row entries
a = []
names_runners.append(input("enter name of runner" + str(i+1)))
for j in range(C): # A for loop for column entries
runners_time.append(int(input("enter time for day" + str(j+1))))
matrix.append(a)
# For printing the matrix
for i in range(R):
for j in range(C):
print(matrix[i][j], end=" ")
print()
我首先想到的是數字R
從未初始化。 我不知道您是否可能在代碼中的其他地方執行此操作,但可能要確保您具有有效的 R 值。
我注意到的第二件事是,在第一個外部 for 循環中,您創建了一個空列表a = []
... 然后不對其執行任何操作。 確保將您關心的實際數據附加到矩陣中,因為現在您將其插入到不相關的列表中,然后附加一個空列表。 因此,當您嘗試遍歷names_runners
和runners_times
列表中盡可能多的項目時,您最終會越界。
我認為在你的情況下使用字典會更好,在這里:
runners_dict = {}
runners_total = 2
days_to_log = int(input("Enter the number of days to log:"))
for i in range(runners_total):
runner_name = input("enter name of runner" + str(i+1))
runners_dict[runner_name] = []
for j in range(days_to_log):
todays_time = int(input("enter time for day" + str(j+1)))
runners_dict[runner_name].append(todays_time)
print(runners_dict)
結果:
Enter the number of days to log:2
enter name of runner1joe
enter time for day1123
enter time for day2321
enter name of runner2bill
enter time for day1123
enter time for day2321
{'joe': [123, 321], 'bill': [123, 321]}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.