Как найти самое короткое слово в строке python

от admin

Найти самое длинное и короткое название

задача найти самое короткое и длинное название города(формально). Выводится самое короткое название, а длинное нет. Не могу понять в чём проблема. Заранее спасибо. Вот код :

Namerek's user avatar

Не совсем ясно, почему в строке elif xmax == x11 or xmax == x22 or xmax == x33: используется elif. Замените на обычное if

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.11.43304

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Python — найти самое короткое слово в списке

Привет всем, я знаю, возможно, было несколько похожих вопросов, но я был бы признателен, если бы вы могли дать мне более конкретное решение для моих попыток.

В основном программа должна вернуть кратчайшее слово в списке. Самое короткое слово не может быть пустой строкой. <- Я также не знаю, как это сделать.

Спасибо за помощь! 🙂

4 ответа

Вы можете просто использовать функцию build in min:

(word for word in l if word) является выражением генератора,

if word условие if word гарантирует, что пустые строки не используются,

key=len использует длину каждого слова для поиска minium

Вы всегда должны использовать встроенные функции, а не писать свои собственные (возможно, кроме случаев, когда вы учитесь). @Marcin очень хорошо описывает работу функции min , поэтому я хочу представить вам функцию filter в качестве замены выражений генератора.

Посмотрите, как min и filter могут работать вместе:

Он может быть менее интуитивным, по сравнению с решением @Marcin , но я предпочитаю использовать функции высокого порядка вместо генераторов. Чтение текста, где одно слово имеет 40% частоты ( word for word in l if word — 3/7) — нет, спасибо :).

Python-сообщество

1. Дан файл, компоненты которого — действительные числа. Найти наибольшее значение из компонент.

2. Найти длину самого короткого слова в строке.

3. В файле в начале каждой строки дозаписать количество слов в соответствующей строке.

#2 Ноя. 18, 2019 10:46:48

Задача на строки, файлы.

Отредактировано marvellik (Ноя. 18, 2019 11:19:26)

#3 Ноя. 18, 2019 23:21:59

Задача на строки, файлы.

#4 Ноя. 19, 2019 09:19:12

Задача на строки, файлы.

ну, перефразируя Остапа Бендера : пусть тот кто скажет что int это комплексные числа первым бросит в меня камень

Отредактировано PEHDOM (Ноя. 19, 2019 09:19:41)

#5 Ноя. 20, 2019 19:45:29

Задача на строки, файлы.

doza_and
не уловил суть

#6 Ноя. 21, 2019 10:49:19

Задача на строки, файлы.

Отредактировано PEHDOM (Ноя. 21, 2019 10:50:17)

#7 Ноя. 21, 2019 11:53:07

Задача на строки, файлы.

Про упорядоченность комплексных чисел ничего не скажешь, так как они лежат на плоскости, а не на прямой.

Python — печать нескольких самых коротких и самых длинных слов из списка

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

Читать:
Как удалить сертификаты из хранилища windows 7

Это работает, но печатает только первое самое длинное слово, что не подходит для более чем одного самого длинного слова.

Я также пробовал:

Это также то же самое, что и предыдущий код

Мне также нужно сделать это для самого короткого слова в списке.

Извините, если это не очень хороший вопрос, это мой первый.

задан 06 фев ’13, 09:02

6 ответы

Во-первых, не всегда использование list в качестве имени переменной, так как оно переопределит встроенный тип и впоследствии может вызвать проблемы.

Вы можете сделать это для самых длинных слов:

И для самых коротких слов:

Первый код печатает строки, которые имеют ту же длину, что и самая длинная строка. Второй делает то же самое, но с самыми короткими строками.

Небольшой оптимизацией будет предварительное вычисление максимальной/минимальной длины перед циклом, поэтому вам не нужно пересчитывать ее каждый раз.

То же самое можно сделать и для другого цикла.

Извините, я просто использовал список для этого вопроса, и большое спасибо за ответ. — Якобсайши

Вы должны рассчитать max и min значения перед запуском цикла. Нет необходимости делать это снова и снова, и снова, и снова. — Матиас

@Matthias, спасибо за предложение, отредактировал его в своем ответе — Изменчивость

Ваш существующий код может быть изменен для работы без особых проблем. Вместо того, чтобы хранить одну строку в s , держать list строк. Если вы найдете ту же длину, что и предыдущая самая длинная, append Это. Если вы найдете еще более длинный, выбросьте его. list и начать новую. Как это:

Я обнаружил, что это намного проще и работает очень хорошо. Но есть ли способ адаптировать его для самого короткого слова? — Якобсайши

Для самого короткого слова я установил p как длину самого длинного слова, но есть ли лучший способ сделать это, так как самое короткое слово можно изменить, чтобы оно было больше этого значения. Я мог бы просто установить его на 100, но это выглядит немного безвкусно. — Якобсайши

Если вам нужно число, которое больше любого другого числа, используйте бесконечность, которая, к сожалению, пишется float(‘inf’) в Питоне. В остальном ваша вторая идея совершенно верна. (Вы также можете использовать sys.maxsize в данном случае это размер максимально возможной коллекции. Но бесконечность более идиоматична и очевидна, я думаю.) — Abarnert

Волатильность дает отличный ответ, но давайте рассмотрим другой способ сделать это.

Что, если бы у вас был не только список в отсортированном порядке, но и сгруппированный в пакеты одинаковой длины? Тогда это было бы легко: распечатать первую группу и распечатать последнюю группу.

И есть функция, которая поставляется с Python, которая делает эту группировку для вас, itertools.groupby , так что is легко:

Вы можете превратить это в однострочник:

Однако я не думаю, что в этом случае я бы стал; это повторилось key=len и все эти лишние скобки затрудняют чтение.

Между тем, вы можете не создавать весь список групп, когда вам действительно нужна только первая:

Related Posts