как отсортировать список в алфавитном порядке по python? - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть программа, в которой я беру текстовый файл, разбиваю текст на отдельные слова и помещаю их в список. следующая часть - отсортировать список по алфавиту и напечатать его.

Пока у меня есть текстовый файл, который просто говорит: «Быстрая коричневая лиса перепрыгивает через ленивую собаку»

и моя программа пока выглядит так:

file = input("Enter File Name: ")
myList =[]

readFile = open(file, 'r')

for line in readFile:
    myList.append(line.split(" "))

myList.sort()

print(myList)

проблема в том, что когда я запускаю программу, список создается и заполняется каждым словом, но когда он распечатывается, он не сортируется в алфавитном порядке. Я также попробовал print(myList.sort()), и единственное, что печатает, это "none"

Ответы [ 4 ]

2 голосов
/ 16 февраля 2020

Проблема в том, что line.split(" ") создает список слов в line, но myList.append добавляет этот список в myList как новый элемент single (так что в итоге вы получите список списков а не список слов). То, что вы, вероятно, хотели:

myList.extend(line.split(" "))
1 голос
/ 16 февраля 2020

Вы, вероятно, должны читать весь файл, а не одну строку за раз:

with open(filename) as f:
    words = f.read().split()
words.sort()

Используется значение по умолчанию для split, которое разделяется на пробел, разрыв строки или любой другой пробел.

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

Из того, что я заметил, проблема в том, что ваш список слов находится в списке,

myList = [["the", "quick", "brown", "fox", "jumps", " над "," the "," lazy "," dog "]].

Так что вместо

for line in readFile:
    myList.append(line.split(" "))

Вы должны писать

for line in readFile:
    myList = line.split(" "))
0 голосов
/ 16 февраля 2020

Python имеет две функции сортировки - одну, которая сортирует список на месте, что является тем, что вы ожидаете в своем коде, и одну, которая оставляет исходный список нетронутым и возвращает отсортированный список (который вы используете ). iir c другая функция называется "отсортированной" - но теперь у вас есть информация, необходимая для ее поиска. Это, вероятно, также ранее заданный вопрос в stackoverflow, я призываю вас искать и ссылаться на другие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...