LINUX.ORG.RU

> оптимальный алгоритм записи данных в файл без повторения посредством питона

"казнить нельзя помиловать", блин. Ничё не понял :)

Чем метод write не устраивает?

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

:) метод write устраивает-то...просто интересует как наиболее оптимально("правильно") при этом отслеживать повторяются ли строки

SpaceR
() автор топика
Ответ на: комментарий от SpaceR

>как наиболее оптимально("правильно")

Критерий оптимальности(правильности) в студию.

DonkeyHot ★★★★★
()
Ответ на: комментарий от SpaceR

> отслеживать повторяются ли строки

Ты имеешь в виду, что в выходном файле не должно быть повторяющихся
строк? В таком случае, всё зависит от объёма данных. Если данные
помещаются в память, то:

def funique( it ) :
    """ Frequently used and most portable but slowest version
    """
    result = {}
    for x in it :
        result[x]=0
    return result.keys()

def iunique( it ) :
    """ Faster but less posrtable than funique() version. Requires Python 2.3.

    Borrowed from zopyrus@itconnection.ru maillist. As far as I remember, from
    Oleg Broytmann's message. Fix me if I'am mistaken (archive search is
    broken).
    """
    return dict(itertools.izip(it, itertools.repeat(0))).keys()

def kunique( it ) :
    """ According to this benchmark it is the fastest unique implementation
    with the same portability as iunique(). It definitely requires Python 2.3.
    """
    return dict.fromkeys(it).keys()

Принимают итераторы в качестве аргументов, возвращают списки с
неповторяющимися элементами. Правда, нарушается порядок следования.
Можешь адаптировать для своих целей.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

И еще одно...а какая альтернатива для того чтоб уменьшить объём памяти необходимый для выполнения данной задачи?

SpaceR
() автор топика
Ответ на: комментарий от watashiwa_daredeska

еще раз спасибо...это я уже спрашивал для общего образования =)

SpaceR
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.