Найти - Пользователи
Полная версия: Список строк
Начало » Центр помощи » Список строк
1
VasiliyArmavir
Вот такой вот пример:
Дан список строк длиной N, поменять местами самую длинную и самую короткую строку в списке.
Как это можно изобразить?
Я понимаю что список должен выглядеть примерно так
array = “Просто любое предложение”,“Пытаюсь вычислить длину строки”,“длина строки”
следовательно последняя и предпоследняя строки должны поменяться местами
rami
Изображаю :
 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)
VasiliyArmavir
Круто, сенкс!!!.
А то я пытаюсь сделать как-то так:
rami
Вы пытаетесь сложным способом отсортировать список по длине элементов, проще будет так:
 print(sorted(array, key=len))

Но в вашей задаче говорится не о сортировке, а о нахождении минимума и максимума и об обмене их местами (остальные остаются на своих местах).
VasiliyArmavir
да да. Еще раз спасибо
VasiliyArmavir
А в моем цикле for, надо обязательно создавать еще одну переменную кроме i ? В данном случае я так понимаю это знак _
rami
enumerate() возвращает пары номер элемента i и сам элемент _ (знак подчёркивания в данном случае как обычная буква). Нам нужны только номера элементов. Можно написать иначе:
 for i in range(len(array)):
VasiliyArmavir
Ясно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB