#python
#python
Вопрос:
Я хочу прочитать файл, выбранный пользователем с помощью ввода, и отсортировать все слова в этом текстовом файле в алфавитном порядке. Вывод этого конкретного кода выводит только все буквы из текстового файла.
-
Пример вывода: A a e l n p
-
желаемый РЕЗУЛЬТАТ:
['apple', 'ein', 'pear', 'purple']
f = open(input("What file would you like to import?"))
for word in sorted(f.read().split()):
print(sorted(word))
Комментарии:
1. Избавьтесь от своего второго вызова sort()
2. Как вы думаете
sorted(words)
, что делает? Зачем ты это сделал? Вы уже отсортировали список в строке раньше.3. Ваш желаемый результат вообще не сортируется.
4. Я смог удалить избыточный вызов .split, и теперь в списке отображаются слова в aplha, но теперь мне нужно ввести их в нижний регистр. Спасибо!
5. Просто замените
sorted(word)
наword
.
Ответ №1:
Вы были действительно близки! Вы просто не хотите сортировать слово перед его печатью. Вы уже отсортировали список:
f = open(input("What file would you like to import?"))
for word in sorted(f.read().split()):
print(word)
Пример содержимого файла:
now is the time for all good
men to come to the aid of
their country
Результат:
aid
all
come
country
for
good
is
men
now
of
the
the
their
time
to
to
Ответ №2:
Если вы sorted(word)
затем sorted
разбиваете свое слово (строку) на буквы и сортируете их, вам не нужно использовать сортировку, просто используйте word
, поскольку ваши слова уже отсортированы! Исправленный код ниже:
f = open(input("What file would you like to import?"))
for word in sorted(f.read().split()):
print(word)
Входной файл:
apple purple pear ein
Вывод:
apple
ein
pear
purple
Если вам нужно иметь list
вывод in, вы можете использовать следующий простой код:
f = open(input("What file would you like to import?"))
print(sorted(f.read().split()))
Входной файл:
apple purple pear ein
Вывод:
['apple', 'ein', 'pear', 'purple']
Комментарии:
1. Это не делает того, что пытался сделать код OPs.
2. @Steve исправлено!