I. Преобразование в строку

Вашему решению предоставлен список натуральных чисел numbers.

Напишите выражение для генерации строки, представляющей собой отсортированный список чисел, записанных через дефис, окружённый пробелами, без повторений.

Примечание

В решении не должно быть ничего, кроме списочного выражения.

Пример

Ввод

numbers = [3, 1, 2, 3, 2, 2, 1]

Вывод

'1 - 2 - 3'

Ввод

numbers = [1, 1, 3, 1, 10, 2, 4, 6, 7, 1, 2, 7]

Вывод

'1 - 2 - 3 - 4 - 6 - 7 - 10'

Решение

Незначительная модификация предыдущего задания. В этот раз нам надо создать множество чисел, отсортировать его и вывести через разделитель в виде дефиса, обрамленного пробелами.

Фактически, нам надо завернуть в списочное выражение следующий код:

Python
result = ''
nums = []

for number in sorted(set(numbers)):
    nums.append(str(number))

result = ' - '.join(nums)

Посмотреть код

Решение

Python
' - '.join([str(num) for num in sorted(set(numbers))])
Подписаться
Уведомить о
guest
7 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Александр
Александр
11.06.2024 09:45

В 5 строке нужно сначала преобразовать в str перед применением append:
nums.append(str(number))
а в 7 строке наоборот str не нужно:
result = ‘ – ‘.join(nums)

Владислав
Владислав
18.07.2024 15:08

Можно было сделать еще через map, тогда еще проще:
” – “.join(map(str, sorted(set(numbers))))

Ольга
Ольга
24.08.2024 03:22

Объясните, пожалуйста, не понимаю…
По поводу str() в 7 строке (а не в 5).
Если записать в 7 строке result = ‘ – ‘.join(str(nums)), то вывод будет такой: ‘ – 1 – , –  – 2 – , –  – 3 – ‘.
А еще зачем в решении генерируется список? Ведь в условии задачи – генерация строки, а не списка.

Ольга
Ольга
Ответить на  Сергей Клочко
24.08.2024 11:49

Поняла, большое спасибо!