@Stigliz777

Как отфильтровать список?

Всем привет, друзья.
Помогите разобраться новичку в пайтоне.
В txt файле строки вида:
1.35;$586;3;$547;Wed Nov 6 09:15:14 2019
1.35;$586;3;$547;Wed Nov 6 09:15:15 2019
1.35;$586;3;$547;Wed Nov 6 09:15:15 2019
1.35;$586;3;$547;Wed Nov 6 09:15:16 2019
1.35;$586;3;$547;Wed Nov 6 09:15:16 2019
1.35;$586;3;$547;Wed Nov 6 09:15:17 2019
1.35;$586;3;$547;Wed Nov 6 09:15:18 2019
1.51;$701;2.55;$1573;Wed Nov 6 09:15:18 2019
1.51;$701;2.55;$1573;Wed Nov 6 09:15:19 2019
1.51;$701;2.55;$1573;Wed Nov 6 09:15:20 2019
1.51;$701;2.55;$1573;Wed Nov 6 09:15:21 2019
и т.д... Цифры дальше меняются периодически.
Мне нужно удалить, те строки, где повторяется время. Т.е. сделать строки уникальными по времени.
Много думал, много что пробовал, но моих знаний пока не хватает((
Переводил все в список, много чего делал, но так ни к чему и не пришел....
f1 = open('betfair.txt', 'r') #открываем файл
soderzimoe = f1.readlines() # read ALL the lines! Содержимое яв-ся списком
Буду рад помощи
  • Вопрос задан
  • 126 просмотров
Решения вопроса 2
@MAGistr_MTM
Учусь программировать
У вас по структуре файл напоминает *.csv файл. Откройте его с помощью Pandas,потом используйте удаление дубликатов
Ответ написан
Комментировать
adugin
@adugin Куратор тега Python
Есть аналогичный вопрос: Как убрать дубли по key в большом файле?

Вариант через pandas:
import pandas as pd

pd.read_csv('in.csv', sep=';', header=None) \
.drop_duplicates(4, keep='first') \
.to_csv('out.csv', header=False, index=False)

Можно так:
from functools import lru_cache

@lru_cache(maxsize=None)
def write(unique_field):
    fo.write(line)
    
with open('in.csv', 'r') as fi, open('out.csv', 'w') as fo:
    for line in fi:
        write(line.rstrip().split(';')[-1])
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Tomio
@Tomio
backend developer (python, php)
Из тех данных, что вы предоставили, я вижу полностью повторяющиеся строки. Если у вас так и есть (а не только время повторяется), то алгоритм простой:
1. читаете из файла строки в множество
2. готово)

множество содержит только уникальные значения, без повторений
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы