Хватит если скомпилировать.
artexcite
А что потом делают с этим большим списком? Может его и не нужно вовсе составлять?
py.user.next
Надо брать каждый список и потом брать каждый элемент списка.
Элементы сохраняются в сквозной словарь, где ключ - число из списка, а значение - количество встретившихся таких чисел.
Когда набирается нужное количество вхождений, число выдаётся на выход.
То есть не надо ничего выгружать, сохранять, соединять, всё делается на лету.
WoMaxЭтот список нужно будет сохранить в текстовый блокнот.
А что потом делают с этим большим списком? Может его и не нужно вовсе составлять?
RodegastКак написать запрос на вставку всех строк при условии, что кол-во вставляемых строк разное?
У тебя должна быть вставка нескольких строк.
FishHook
ИМХО: подобные данные (когда возникает нужда в хранении списков) вообще очень плохо накладываются на РСУБД, лучше сейчас отказаться от мускуля в пользу документо-ориентированного хранилища, чем потом десятилетия тащить за собой этот чемодан без ручки.
artexciteну примерно так
Приведите пожалуйста примерчик.
Я попробую реализовать этот алгоритм используя мои данные, но я думаю, что я столкнусь проблемой скорости выполнения и если во время выполнения скрипта произойдёт сбой (например, подключения к БД) то скрипт начнет работать заново.
from random import randint def f(d,lst): for i in lst: if not i in d: d[i] = 1 else: d[i] += 1 l1 = [str(randint(100,200)) for i in range(1000000)] l2 = [str(randint(1000,2000)) for i in range(1000000)] l3 = [str(randint(2000,3000)) for i in range(1000000)] d = {} f(d,l1) del l1 f(d,l2) del l2 f(d,l3) del l3 out = [i for i in d if d[i] >= 3] print len(out),out
artexcite
Приведите пожалуйста примерчик.
Я попробую реализовать этот алгоритм используя мои данные, но я думаю, что я столкнусь проблемой скорости выполнения и если во время выполнения скрипта произойдёт сбой (например, подключения к БД) то скрипт начнет работать заново.
>>> import itertools >>> >>> def func(seq, dct, num): ... items = itertools.chain.from_iterable(seq) ... for i in items: ... dct[i] = dct.get(i, 0) + 1 ... if dct[i] == num: ... yield i ... >>> list_1 = [1, 2, 3, 4, 5, 8, 8] >>> list_2 = [3, 4, 5, 6, 7] >>> list_3 = [3, 4, 5, 6, 7, 8] >>> >>> db = [list_1, list_2, list_3] >>> >>> list(func(db, {}, 3)) [3, 4, 5, 8] >>>