матрица печати (2-й) в python - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь напечатать этот код в матрицу, но продолжаю получать:

line 22, in <module>
    print(matrix[i][j], end=" ")
IndexError: list index out of range

Это мой код:

Базовый c код для матричного ввода от пользователя

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()

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Я думаю, что было бы лучше использовать словарь в вашем случае, здесь:

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]}
0 голосов
/ 29 апреля 2020

Первое, что выскакивает из меня, это то, что число R никогда не инициализируется. Я не знаю, возможно, вы делали это где-то еще в вашем коде, но, возможно, убедитесь, что у вас есть действительное значение R.

Второе, что я заметил, это то, что в первом внешнем l oop, вы создаете пустой список a = [] ... и ничего не делаете с ним. Убедитесь, что вы добавляете фактические данные, которые вам нужны, в матрицу, потому что сейчас вы вставляете их в несвязанные списки, а затем добавляете пустой список. Следовательно, когда вы пытаетесь перебрать столько элементов, сколько имеется в ваших списках names_runners и runners_times, вы в конечном итоге выходите за пределы.

...