0 / 0 / 0
Регистрация: 28.10.2019
Сообщений: 26

Сортировка

21.10.2021, 20:08. Показов 618. Ответов 5

Студворк — интернет-сервис помощи студентам
Здраствуйте. У меня есть текст который мне надо переработать так чтобы остались только определенные строки. На данный момент это реализовано следующим способом. Как можно сделать то же самое более оптимальным способом?
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
                text = event.message.split("\n")
                sort_test = sorted(text)
                print(sort_test)
                final_text = ""
                for i in sort_test:
                    temp_text = str(i)
                    if temp_text.find("Золота") == 0 or \
                            temp_text.find("Осколки Сердца") == 0 or \
                            temp_text.find("Свободное место") == 0 or \
                            temp_text.find("Чистая первозданная вода") == 0 or \
                            temp_text.find("Первозданная вода") == 0 or \
                            temp_text.find("Карта") == 0 or \
                            temp_text.find("Адский") == 0 or \
                            temp_text.find("Сверкающая чешуя") == 0 or \
                            temp_text.find("Книга") == 0 or \
                            temp_text.find("Рыбий") == 0 or \
                            temp_text.find("Необычный цветок") == 0 or \
                            temp_text.find("Камнецвет") == 0 or \
                            temp_text.find("Болотник") == 0 or \
                            temp_text.find("Сквернолист") == 0 or \
                            temp_text.find("Кров") == 0 or \
                            temp_text.find("Чернильник") == 0 or \
                            temp_text.find("Корень") == 0 or \
                            temp_text.find("Необычная") == 0 or \
                            temp_text.find("Обломок") == 0 or \
                            temp_text.find("Цветок") == 0 or \
                            temp_text.find("Малое") == 0 or \
                            temp_text.find("Кольцо") == 0 or \
                            temp_text.find("Рунное") == 0 or \
                            temp_text.find("Бревно") == 0 or \
                            temp_text.find("Камен") == 0 or \
                            temp_text.find("Железн") == 0 or \
                            temp_text.find("Лен") == 0 or \
                            temp_text.find("Доска") == 0 or \
                            temp_text.find("Ткань") == 0 or \
                            temp_text.find("Пещерный") == 0:
                        final_text += temp_text + "\n"
                   vk_session.method("messages.send", {"chat_id": 5, "message": final_text, "random_id": 0})
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.10.2021, 20:08
Ответы с готовыми решениями:

Сортировка
Ребят помогите от сортировать данный код по убыванию , сейчас он сортирует по возрастанию # -*- coding: utf-8 -*- class Person:...

Сортировка
Пытался сделать визуализацию пузырьковой сортировки (через генераторы), но выводит в итоге не правильный результат, можете подсказать что...

Сортировка
def bubble(a): t = default_timer() counter = 0 for i in range(len(a)): for j in range(len(a)): if...

5
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
21.10.2021, 20:19
Python
1
2
3
4
5
temp_text = 'sfdfsdf'
words = ['первое', 'второе', 'и так далее']
for word in words:
    if temp_text.find(word) == 0:
        pass
0
enx
 Аватар для enx
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
21.10.2021, 20:20
Apocryph, фразы для начала строк поместить в любую итерируемую структуру.

Python
1
2
3
4
5
6
for i in sort_test:
    temp_text = str(i)
    for k in lst:
        if temp_text.startswith(k):
            final_text += temp_text + "\n"
            break
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
21.10.2021, 20:21
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def bool_fun(line):
                    for data_row in (lst_data):
                        if data_row in line:
                            return False
                    return True
 
 
data_row = ("Осколки Сердца", "Свободное место", "Чистая первозданная вода",
                     "Первозданная вода",   "Карта") # все ваши слова из вашего if
                
text = event.message.split("\n")
sort_test = sorted(text)
print(sort_test)
final_text = ""
for text in sort_test:
    if bool_fun(text) 
        final_text += text + "\n"
vk_session.method("messages.send", {"chat_id": 5, "message": final_text, "random_id": 0})
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
21.10.2021, 20:24
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
все ваши слова из вашего if
или в текстовый файл - каждый с новой строки
далее дело техники
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
21.10.2021, 22:58
Apocryph,
Если ты ищешь совпадение с началом строки (0 это значит есть совпадение начиная с нулевого индекса), то зачем str.find?
str.startswith
Тогда и на индекс 0 проверять не надо.
Python
1
2
3
>>> "Осколки Сердца остались на земле".startswith("Осколки Сердца")
True
>>>
Ну и как выше посоветовали - данные в структуру, код - отдельно. Котлеты с мухами смешивать не надо.

P.S. Можно, кстати, одной регуляркой обойтись: r"^(слово|слово|слово|слово| и т.д.)" Только регулярку такую лучше динамически формировать из списка слов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2021, 22:58
Помогаю со студенческими работами здесь

Сортировка
1)Такси Ограничение по времени работы программы: 1 секунда После затянувшегося совещания директор фирмы решил заказать такси, чтобы...

Сортировка
Мне нужно создать свою сортировку в Python, как например сортировка карт '23456789TJQKA' например дана строка '83756T5Q9AT' нужно чтобы...

Сортировка
Дан список школьников с указанием класса. Требуется отсортировать их по убыванию класса, а в рамках каждого класса — по возрастанию...

Сортировка
Здравствуйте, объясните пожалуйста по какому принципу происходит сортировка? a=int(input()) l=sorted() print(l) Ввод: 4 ...

Сортировка массива
Я начинающий питонист и у меня возник вопрос, как правильно реализовать следуюбщее. У меня есть массив 96х96: в массиве 4 разных значения...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru