Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/225: Рейтинг темы: голосов - 225, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 9

В файле записаны в столбик целые числа. Отсортировать их по возрастанию суммы цифр и записать в другой файл

25.10.2019, 13:10. Показов 46720. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В файле записаны в столбик целые числа. Отсортировать их по возрастанию суммы цифр и записать в другой файл.

Как? можно с пояснениями, пожалуйста.))))))))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.10.2019, 13:10
Ответы с готовыми решениями:

Отсортировать массив по возрастанию суммы цифр и записать его в файл output.txt, В файле input.txt записаны числа (в сто
program qq; var n , t : integer; a : array of integer; f: text; function sum(x : integer) : integer; var s : integer;...

Отсортировать числа из файла по возрастанию суммы цифр и записать в другой файл
Помогите, пожалуйста В файле записано не более 100 чисел. Отсортировать их по возрастанию суммы цифр и записать в другой файл....

Отсортировать числа из файла по возрастанию суммы цифр и записать в другой файл
В файле numbers.txt записан список из целых чисел. Отсортировать их по возрастанию суммы цифр и записать в другой файл.

19
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
25.10.2019, 13:32
Пожалуйста.
1. Считать файл.
2.1. Отсортировать хоть как-нибудь.
2.2. Потом - по возрастанию суммы цифр.
3. Записать резуольтат в файл.

Каждый из пунктов является элементарным и легко гуглится.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.10.2019, 14:23
2.1. Создать список с числами.
2.2. Написать функцию сортировки, которая будет считать сумму цифр в числе.
2.3. Отсортировать.
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
25.10.2019, 15:20
Alexandra_20, пояснения к каждой задаче уровня седьмого класса - занимает много времени. Вашему вниманию представляю дядьку ГУГЕЛЬ! Он знает всё, в нём можно найти и перейти по ссылке к документации python!

Добавлено через 25 секунд
Alexandra_20, вы знаете, как открыть файл в python?

Добавлено через 53 минуты
Я конечно не старый скряга, но я не могу понять. Почему мне интересно подумать, придумать, написать (да как могу, да что-то не правильно, да в одну строку и с лямбдами я не могу), но я стараюсь, такие как - Alexandra_20, всё равно. Обидно же за поколение

Python
1
2
3
4
5
6
7
8
9
with open('input.txt') as t:
    nums = t.read().splitlines()
    hm =[]
    for i in list(sorted(nums)):
        ok = sum(map(int,i))
        hm.append(ok)
 
with open('output.txt', 'w') as w:
    print(sorted(hm), file=w)
2
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.10.2019, 15:41
Damenikx, только в файл нужно записать сами числа, а не сумму ))
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
25.10.2019, 15:43
Рыжий Лис, да? Вот блинский )
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.10.2019, 15:54
Лучший ответ Сообщение было отмечено Alexandra_20 как решение

Решение

In Python 3, the cmp parameter was removed,
Блин. Должно быть как-то так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
t = '''\
123
111
99'''
ls = t.split('\n')
print(ls)
 
def mycmp(x, y):
    print(x, y)
    return 0
 
ls2 = sorted(ls, cmp=mycmp)
print(ls2)
Добавлено через 3 минуты
Во!
Python
1
2
3
4
5
6
7
8
from functools import cmp_to_key
 
def mycmp(x, y):
    print(x, y)
    return 0
 
ls2 = sorted(ls, key=cmp_to_key(mycmp))
print(ls2)
Добавлено через 2 минуты
И с key, вроде, сортирует:
Python
1
2
3
4
5
6
7
def mykey(x):
    s = sum(map(int, x))
    print(x, 'sum =', s)
    return s
 
ls2 = sorted(ls, key=mykey)
print(ls2)
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
25.10.2019, 15:55
Лучший ответ Сообщение было отмечено Alexandra_20 как решение

Решение

Эх, лямбды, тогда так:

Python
1
2
3
4
5
with open('input.txt') as t:
    a = t.read().splitlines()
    a.sort(key=lambda x: sum(map(int, x)), reverse=True)
with open('output.txt', 'w') as w:
    print(*a, file=w)
Добавлено через 27 секунд
Рыжий Лис, всё проще, когда есть лямбды
0
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 9
25.10.2019, 17:34  [ТС]
Рыжий Лис, а есть более упрощённая запись?)
И не могли бы Вы, пожалуйста, пояснить, что и для чего для лучшего понимания.)
Спасибо.)
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.10.2019, 17:39
Лучший ответ Сообщение было отмечено Alexandra_20 как решение

Решение

ls = t.split('\n') - разбиваем прочитанный, получаем список строк.

Python
1
2
3
4
def mykey(x):
    s = sum(map(int, x))
    print(x, 'sum =', s)
    return s
Пишем функцию для сортировки. Где x - элемент списка. Функция считает сумму цифр и возвращает число, которое будет участвовать в сортировке.

ls2 = sorted(ls, key=mykey) - сортируем, получаем новый список.

Добавлено через 48 секунд
Функцию mykey() рекомендую выкинуть и написать свою реализацию.
0
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 9
25.10.2019, 18:18  [ТС]
Рыжий Лис, программа не выполняется из-за ошибки. Я только пытаюсь разобраться в Python. Ничего не понимаю.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.10.2019, 18:19
Выложите на форум ваш код и текст ошибки.
0
25.10.2019, 18:20

Не по теме:

Цитата Сообщение от Alexandra_20 Посмотреть сообщение
Ничего не понимаю.
это обычное дело, пока книгу в руки не возьмешь.

0
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 9
25.10.2019, 18:25  [ТС]
Рыжий Лис, вот код:
Python
1
2
3
4
5
6
7
def cat(x):
    s = sum(map(int, x))
    print(x, 'sum =', s)
    return s
 
ls2 = sorted(ls, key=cat)
print(ls2)

Вот текст ошибки:

Traceback (most recent call last):
File "C:/Users/Админ/Desktop/Задание.py", line 6, in <module>
ls2 = sorted(ls, key=cat)
NameError: name 'ls' is not defined
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.10.2019, 18:27
Так файл нужно прочитать и заполнить переменную ls списком.

Добавлено через 1 минуту
*файл с числами.
0
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 9
25.10.2019, 18:29  [ТС]
Рыжий Лис, это значит, что... (не поняла)
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.10.2019, 18:30
Python
1
2
3
4
with open('input.txt') as f:
    t = f.read()
print(t)
ls = ...
0
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 9
25.10.2019, 18:42  [ТС]
Рыжий Лис, спасибо большое за помощь.)
Запуталась... Как полностью будет выглядеть код?
Я уже по-разному пробовала.

Добавлено через 2 минуты
Welemir1, читаю потихонечку.) Пытаюсь вникнуть.
0
36 / 21 / 9
Регистрация: 17.10.2019
Сообщений: 95
26.10.2019, 00:54
Python
1
2
3
4
5
6
7
8
9
10
11
filename =  
f = open(filename, "r")
ls =    f.read().splitlines()
f.close()
def cat(x):
    s = sum(map(int, x))
    print(x, 'sum =', s)
    return s
 
ls2 = sorted(ls, key=cat)
print(ls2)
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,309
26.10.2019, 21:11
PyDev, а записать в другой файл?
Python
1
2
3
4
5
def fun(line):
    return sum(map(int,line))
 
with open('input.txt') as f_in, open('out.txt','w') as f_out:
    f_out.write('\n'.join(sorted(f_in.read().splitlines(), key = fun)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.10.2019, 21:11
Помогаю со студенческими работами здесь

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

Отсортировать чисел по возрастанию суммы цифр и записать в другой файл
Ребят, помогите написать программу ПАСКАЛЬ, желательно сами, а не копировать у других источников сайта, срочно очень нужно,помогите ...

Отсортировать их по возрастанию суммы цифр и записать в другой файл. Используйте функцию, которая вычисляет
В файле записано не более 100 чисел. Отсортировать их по возрастанию суммы цифр и записать в другой файл. Используйте функцию, ...

Отсортировать числа в файле по возрастанию последней цифры и записать в другой файл
В файле записаны в столбик целые числа. Отсортировать их по возрастанию последней цифры и записать в другой файл.

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru