Форум сайта python.su
Вот такой вот пример:
Дан список строк длиной N, поменять местами самую длинную и самую короткую строку в списке.
Как это можно изобразить?
Я понимаю что список должен выглядеть примерно так
array = “Просто любое предложение”,“Пытаюсь вычислить длину строки”,“длина строки”
следовательно последняя и предпоследняя строки должны поменяться местами
Отредактировано VasiliyArmavir (Сен. 27, 2018 21:31:00)
Офлайн
Изображаю :
array = ['Просто любое предложение','Пытаюсь вычислить длину строки','длина строки'] min_ = min(array, key=len) max_ = max(array, key=len) for i,_ in enumerate(array): if array[i] == min_: array[i] = max_ elif array[i] == max_: array[i] = min_ print(array)
Офлайн
Круто, сенкс!!!.
А то я пытаюсь сделать как-то так:
Прикреплённый файлы: string in array.txt (209 байт)
Офлайн
Вы пытаетесь сложным способом отсортировать список по длине элементов, проще будет так:
print(sorted(array, key=len))
Офлайн
да да. Еще раз спасибо
Офлайн
А в моем цикле for, надо обязательно создавать еще одну переменную кроме i ? В данном случае я так понимаю это знак _
Офлайн
enumerate() возвращает пары номер элемента i и сам элемент _ (знак подчёркивания в данном случае как обычная буква). Нам нужны только номера элементов. Можно написать иначе:
for i in range(len(array)):
Офлайн
Ясно.
Офлайн