Почему разные списки в одном индексе? - PullRequest
0 голосов
/ 15 марта 2020

В настоящее время я кодирую, чтобы вычислить количество элементов в строке для магического квадрата c и проверяю его - в первой строке 3 элемента, во второй строке 4 элемента, а в третьей строке 3 элемента, которые я пытаюсь получить. код, чтобы убедиться, что все строки имеют одинаковое количество элементов, однако я получаю выводимые данные:

Enter filename :test
[3]
[4]
[3]

Я не уверен, что это означает, когда списки показываются "спускаясь" вот так, они все они имеют одинаковый индекс 0.

Текущий код -

r = input("Enter filename :")
while True:
    try:
        f = open(r,"r")
        break
    except:
        r = input("Enter the correct filename :")

while True: 
    line = f.readline()
    if not line:
        break
    a = line.split(' ')
    totalrow = len(a)
    m = []
    m.append(len(a))
    for x in m: 
        print(m[0])

Я не уверен, как эти числа можно включить в список по отдельности, чтобы я мог сравнить их и применить проверку

1 Ответ

1 голос
/ 16 марта 2020

Вы можете просто создать список заранее, выполнить итерации по строкам и добавить к списку длину line.split.

# Get the file.
r = input("Enter filename:")
while True:
    try:
        f = open(r, "r")
        break
    except FileNotFoundError:
        print(f"Could not locate a file named {r}.")
        r = input("Enter the correct filename: ")

# Count the rows for each line. 
elements_per_line = []
for line in f:  
    rows = len(line.split(" "))
    elements_per_line.append(rows)

# Do something with that information (`elements_per_line` == [2, 3, 2] now).
if sum(elements_per_line) != len(elements_per_line) * elements_per_line[0]:
    print("✗ Not all lines have the same size!")
else:
    print("✓ All lines have the same size.")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...