Следующий код выдаёт мне ошибку: у объекта 'list' нет атрибута 'split' - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь расшифровать сообщение из текстового файла, получая режим каждого столбца, и выдает ошибку атрибута:

У объекта 'list' нет атрибута 'split'

Я знаю, что в списке нет split, только строки имеют split.

file1=open("input.txt","r")
for row_ele in file1.readlines().split("\n"):
    c=0
    for ele_in_row in row_ele:
           #c=row_ele.count(ele_in_row):
            if c<row_ele.count(ele_in_row):
                c=row_ele.count(ele_in_row)
                mode_ele=ele_in_row
    print(mode_ele)
file1.close()

Ответы [ 2 ]

3 голосов
/ 17 февраля 2020

Ошибка говорит о проблеме: вы пытаетесь вызвать split() в списке, но в списке нет функции с именем split(). Я думаю, что вы хотите взять строку и разбить ее на список строк, разделенных '\n', что вы могли бы сделать, если бы у вас была строка, потому что str имеет функцию с именем split(). readlines() уже делает это, поэтому вы можете просто полностью удалить вызов split():

for row_ele in file1.readlines():
1 голос
/ 17 февраля 2020

Если вы использовали readline(), он стал file1 = {'line1', 'line2', ...}. Вы можете использовать только

for row_ele in file1.readlines():

или

for row_ele in file1.split('\n'):
...