Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 27, 2018 20:53:49

VasiliyArmavir
Зарегистрирован: 2018-09-27
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Список строк

Вот такой вот пример:
Дан список строк длиной N, поменять местами самую длинную и самую короткую строку в списке.
Как это можно изобразить?
Я понимаю что список должен выглядеть примерно так
array = “Просто любое предложение”,“Пытаюсь вычислить длину строки”,“длина строки”
следовательно последняя и предпоследняя строки должны поменяться местами

Отредактировано VasiliyArmavir (Сен. 27, 2018 21:31:00)

Офлайн

#2 Сен. 28, 2018 00:15:42

rami
Зарегистрирован: 2018-01-08
Сообщения: 281
Репутация: +  72  -
Профиль   Отправить e-mail  

Список строк

Изображаю :

 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)

Офлайн

#3 Сен. 28, 2018 13:25:42

VasiliyArmavir
Зарегистрирован: 2018-09-27
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Список строк

Круто, сенкс!!!.
А то я пытаюсь сделать как-то так:

Прикреплённый файлы:
attachment string in array.txt (209 байт)

Офлайн

#4 Сен. 28, 2018 13:39:54

rami
Зарегистрирован: 2018-01-08
Сообщения: 281
Репутация: +  72  -
Профиль   Отправить e-mail  

Список строк

Вы пытаетесь сложным способом отсортировать список по длине элементов, проще будет так:

 print(sorted(array, key=len))

Но в вашей задаче говорится не о сортировке, а о нахождении минимума и максимума и об обмене их местами (остальные остаются на своих местах).

Офлайн

#5 Сен. 28, 2018 13:43:48

VasiliyArmavir
Зарегистрирован: 2018-09-27
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Список строк

да да. Еще раз спасибо

Офлайн

#6 Сен. 28, 2018 13:49:09

VasiliyArmavir
Зарегистрирован: 2018-09-27
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Список строк

А в моем цикле for, надо обязательно создавать еще одну переменную кроме i ? В данном случае я так понимаю это знак _

Офлайн

#7 Сен. 28, 2018 14:04:20

rami
Зарегистрирован: 2018-01-08
Сообщения: 281
Репутация: +  72  -
Профиль   Отправить e-mail  

Список строк

enumerate() возвращает пары номер элемента i и сам элемент _ (знак подчёркивания в данном случае как обычная буква). Нам нужны только номера элементов. Можно написать иначе:

 for i in range(len(array)):

Офлайн

#8 Сен. 28, 2018 14:08:22

VasiliyArmavir
Зарегистрирован: 2018-09-27
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Список строк

Ясно.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version