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

Как изменить сортировку?

27.01.2021, 11:55. Показов 656. Ответов 2

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import sys
 
if __name__ == '__main__':
    # Список
    peoples = []
 
    while True:
        command = input(">>> ").lower()
 
        if command == 'exit':
            break
        elif command == 'add':
            second_name = input("Фамилия ")
            name = input("Имя ")
            number = int(input("Номер телефона "))
            year = input("Дата рождения в формате: дд.мм.гггг ")
 
            if not number:
                print("Поле не заполнено")
                exit(1)
 
            people = {
                'second name': second_name,
                'name': name,
                'number': number,
                'year': year,
            }
 
            peoples.append(people)
            if len(peoples) > 1:
                peoples.sort(key=lambda item: item.get('number', '3'))
 
        elif command == 'list':
            line = '+-{}-+-{}-+-{}-+-{}-+-{}-+'.format(
                '-' * 4,
                '-' * 20,
                '-' * 20,
                '-' * 20,
                '-' * 15
            )
            print(line)
            print(
                '| {:^4} | {:^20} | {:^20} | {:^20} | {:^15} |'.format(
                    "№",
                    "Фамилия ",
                    "Имя",
                    "Номер телефона",
                    "Дата рождения"
                )
            )
            print(line)
 
            for idx, people in enumerate(peoples, 1):
                print(
                    '| {:>4} | {:<20} | {:<20} | {:<20} | {:>15} |'.format(
                        idx,
                        people.get('surname', ''),
                        people.get('name', ''),
                        people.get('number', ''),
                        people.get('year', 0)
                    )
                )
            print(line)
 
        elif command.startswith('select '):
            parts = command.split(' ', maxsplit=2)
            sur = (parts[1])
 
            count = 0
            for people in peoples:
                if people.get('second name') == sur:
                    count += 1
                    print('Фамилия:', people.get('second name', ''))
                    print('Имя:', people.get('name', ''))
                    print('Номер телефона:', people.get('number', ''))
                    print('Дата рождения:', people.get('year', ''))
 
            if count == 0:
                print("Таких фамилий нет !")
 
        elif command == 'help':
            print("Список команд:\n")
            print("add - добавить человека;")
            print("list - вывести список людей;")
            print("select <фамилия> - запросить информацию по фамилии;")
            print("help - отобразить справку;")
            print("exit - завершить работу с программой.")
        else:
            print("Неизвестная команда {command}", file=sys.stderr)
как сделать сортировку не по всему номеру,а только по 3 первым цифрам номера телефона?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.01.2021, 11:55
Ответы с готовыми решениями:

Как в combobox изменить сортировку?
У меня в combobox загружена бд access. В БД есть названия областей и 1 Страна. В combobox все идет по алфавиту. И Российская Федерация...

Как изменить пирамидальну сортировку?
void heapify(int arr, int n, int i) { int largest = i; int l = 2*i + 1; // левый = 2*i + 1 int r = 2*i + 2; //...

Как изменить размер значков и сортировку ярлыков на рабочем столе через CMD
В общем нужно откатывать изменения на учебных ноутбуках после окончания занятий:В частности 1. Откатывать изменение сортировки ярлыков ...

2
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,307
27.01.2021, 12:05
ну логично получить эти 3 цифры лямбду в ключе. перевести номер в строку срезом взять 3 цифры их в число и сортировать
Python
1
peoples.sort(key=lambda item: int(str(item.get('number'))[:3]))
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
27.01.2021, 12:07
Tvimexer, как пример
Python
1
2
3
4
>>> phones = ['123456', '345678','1112345','9998543', '122345', '120456']
>>> phones.sort(key=lambda x: int(x[:3]))
>>> phones
['1112345', '120456', '122345', '123456', '345678', '9998543']
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.01.2021, 12:07
Помогаю со студенческими работами здесь

Изменить сортировку
Добрый вечер! Можете изменить эту сортировку на сортировку методом Шелла? #include &lt;iostream&gt; using namespace std; ...

Как преобразовать сортировку пузырьком в сортировку подсчетом в приведенном ниже коде?
static Random Rnd = new Random(); static int InitArray(int count) // - Заполнение массива рандомными числами, count - кол-во...

Как добавить в сортировку товара новое свойство, например сортировку по высоте, ширине, весу?
Как добавить в сортировку товара новое свойство, например сортировку по высоте, ширине, весу? Мне нужно чтобы когда выходит список...

Подскажите как эту сортировку переделать в сортировку по алфавиту?
Подскажите как эту сортировку переделать в сортировку по алфавиту?? vector&lt;std::pair&lt;string, int&gt;&gt; popularAuthor; ...

Предикат map, изменить сортировку
Добрый день. Есть поток из которого я считываю слова. Я должен их добавить в map таким образом, чтобы ключом было слово, а значением...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
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, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru