Импорт SQLite3 выводит назад в базу данных

Чувствует себя немного не-pythonic, чтобы не учитывать ответ на двойной список, чтобы обрабатывать n-строку с усилием O (1):

"".join(c for cs in itertools.zip_longest(*all_strings) for c in cs)

, где all_strings - это список строки, которые вы хотите чередовать. В вашем случае all_strings = [u, l]. Пример полного использования будет выглядеть следующим образом:

import itertools
a = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
b = 'abcdefghijklmnopqrstuvwxyz'
all_strings = [a,b]
interleaved = "".join(c for cs in itertools.zip_longest(*all_strings) for c in cs)
print(interleaved)
# 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'

Как и многие ответы, быстрее всего? Наверное, нет, но просто и гибко. Кроме того, без слишком сложной сложности это немного быстрее, чем принятый ответ (в общем случае добавление строки немного медленнее в python):

In [7]: l1 = 'A' * 1000000; l2 = 'a' * 1000000;

In [8]: %timeit "".join(a + b for i, j in zip(l1, l2))
1 loops, best of 3: 227 ms per loop

In [9]: %timeit "".join(c for cs in zip(*(l1, l2)) for c in cs)
1 loops, best of 3: 198 ms per loop
35
задан Noah 14 February 2009 в 00:57
поделиться

3 ответа

60
ответ дан Ali Afshar 10 October 2019 в 11:30
поделиться

Вы не указывали свою операционную систему и в то время как

sqlite3 my_database.sqlite < export.sqlite3.sql

будет работать на разновидности Unix, она не будет работать на окна.

инверсия команды .dump является командой .read. Синтаксис был бы

sqlite3> .read export.sqlite3.sql
48
ответ дан Noah 10 October 2019 в 11:30
поделиться

Это также должно работать:

echo '.read export.sqlite3.sql' | sqlite3 my_database.sqlite3

Одно из возможных преимуществ перед " sqlite3 my_database.sqlite3 " заключается в том, что SQLite's .read ] может (сейчас или в будущем) быть более продвинутой, чем просто «прочитать весь текст и выполнить его». Он может выполнять пакетную обработку, что сокращает использование памяти для больших дампов. Я признаю, однако, что это довольно неясное и маловероятное преимущество. По всей вероятности, .read просто считывает каждую строку из ввода и выполняет ее, точно так же, как операторы перенаправления и конвейера.

2
ответ дан 27 November 2019 в 05:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: