簡體   English   中英

python 中的打印矩陣 (2-d)

[英]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_runnersrunners_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM