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

В списке убрать знаки после точки

20.11.2022, 13:01. Показов 1850. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть список данных, мне нужно удалить последние 2 символа после точки:
Python
1
2
3
4
5
6
'AF,204,76.56781,N,106.20333,E,0.6,326.7,191122\n'
'BQ,204,24.2,23'
'AF,204,76.56786,N,106.20336,E,0.6,326.7,191122\n'
'17320953,\n'
'BQ,206,24.3,28,2893324'
'AF,204,76.56787,N,106.20339,E,0.6,326.7,191124\n'
То что я хочу получить:
Python
1
2
3
4
5
6
'AF,204,76.567,N,106.203,E,0.6,326.7,191122\n'
'BQ,204,24.2,23'
'AF,204,76.567,N,106.203,E,0.6,326.7,191122\n'
'17320953,\n'
'BQ,206,24.3,28,2893324'
'AF,204,76.567,N,106.203,E,0.6,326.7,191124\n'
Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2022, 13:01
Ответы с готовыми решениями:

Как убрать знаки табуляции и точки в коде?
Как убрать знаки табуляции и точки в коде?

Убрать лишние знаки после запятой
Допустим, есть число - 5,34932482838349. А нужно, чтобы выводилось только 5,349.

Как убрать точки в списке и настроить размер формы
Доброго времени суток Есть форма, выполненная через список: <div id="forma">Вы можете задать нам вопрос через эту форму: ...

10
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
20.11.2022, 13:15
Цитата Сообщение от Ohlamon77 Посмотреть сообщение
0.6
А если символов после точки меньше двух то оставить как есть?
0
0 / 0 / 0
Регистрация: 17.06.2019
Сообщений: 83
20.11.2022, 13:17  [ТС]
Цитата Сообщение от rim41 Посмотреть сообщение
А если символов после точки меньше двух то оставить как есть?
Да, оставить как есть
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
20.11.2022, 13:51
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def foo(string):
    result = ""
    lst = string.split(',')
    for el in lst:
        if '.' not in el:
            result += el + ','
            continue
 
        x = float(el)
        x = round(x, len(str(x).split('.')[1]) - 2)
        print(f"Len = {len(str(x).split('.')[1])} with {x=}")
        result += str(x) + ','
 
    return result.removesuffix(',')
Добавлено через 1 минуту
Хотя мне сейчас кажется что это не совсем то что вам нужно, это математически округляет числа а не удаляет как из строк

Добавлено через 12 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
s = 'AF,204,76.56781,N,106.20333,E,0.6,326.7,191122\n'
 
 
def foo(string):
    result = ""
    lst = string.split(',')
    for el in lst:
        if '.' not in el:
            result += el + ','
            continue
 
        parts = el.split('.')
        res = parts[1][0:-2]
        result += parts[0] + '.' + res + ','
 
    return result.removesuffix(',')
 
 
print(foo(s))
Добавлено через 37 секунд
Надеюсь проблем с переносом этой функции в условия нескольких данных не возникнет
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
20.11.2022, 13:53
А если возникнет - возникает вопрос:
Изображения
 
0
0 / 0 / 0
Регистрация: 17.06.2019
Сообщений: 83
20.11.2022, 13:54  [ТС]
Сейчас сделал код из двух частей: 1) ищет, что мне нужно(где есть "A") 2) удаляет значения после точки
Python
1
2
3
4
5
6
7
check='A'
res = [idx for idx in db if idx[0].lower() == check.lower()]
dotdel=[]
v=[]
for str in res:
    dotdel=re.sub(r'\b(\d+\.\d{3})\d+\b', r'\1',str)
    v.append(dotdel)
Остался вопрос, как обратно значения "v" положить в список "db", на те же позиции?
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
20.11.2022, 14:26
Ohlamon77, я, собсна, таким же вопросом задался когда через регуляркт делал, поэтому и сделал через алгоритм простой
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
20.11.2022, 15:19
Лучший ответ Сообщение было отмечено Ohlamon77 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
import regex as re
 
lst = ['AF,204,76.56781,N,106.20333,E,0.6,326.7,191122\n',
    'BQ,204,24.2,23',
    'AF,204,76.56786,N,106.20336,E,0.6,326.7,191122\n',
    '17320953,\n',
    'BQ,206,24.3,28,2893324',
    'AF,204,76.56787,N,106.20339,E,0.6,326.7,191124\n']
 
for i in lst:
    print(re.sub(r'(?<=\.\d+)\d\d(?=\b)', '', i))
Ну или
Python
1
print(re.sub(r'(\.\d+)\d\d\b', r'\1', i))
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
21.11.2022, 09:03
Цитата Сообщение от iSmokeJC Посмотреть сообщение
import regex as re
что за приколы
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
21.11.2022, 09:12
rim41, что тебя удивило?
regex - расширенная библиотека по работе с регулярками, включающая в себя множество фишек не реализованных в стандартной re
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
21.11.2022, 09:13
iSmokeJC, понял уже
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2022, 09:13
Помогаю со студенческими работами здесь

Знаки после точки (тип double)
Подскажите, почему программы выдает непонятный ответ? Как я понимаю проблема в количестве знаков после запятой, потому-что при...

Atol отбрасывает знаки после точки
Собственно вопрос в теме. string st; long double m; //-----код-------------// m=atol(st.c_str()); И в m пишет только целую часть:...

Как убрать знаки после запятой до 3 включительно в столбике excel?
Как убрать знаки после запятой до 3 включительно в столбике excel? Например есть два столбика данных с названиями &quot;выход 1&quot; и...

Как преобразовать большое число в строку через stringstream и ограничить знаки после точки
опять возникла проблема которая была недавно но с другим методом нужно преобразовать большое число типо double в строку через...

Убрать 2 числа после точки
Здравствуйте. :) Имеется число, оно выводится вида: 89.7452 Мне необходимо откинуть 2 последие цифры, что бы осталось 89.74 ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru