Какой самый быстрый способ разделить и добавить две переменные из списка кортежей (ответ из sqlalchemy) в Python? - PullRequest
1 голос
/ 29 февраля 2020

Это мой первый вопрос здесь, и если это глупый вопрос, извините.

У меня есть строки (около 1-2 м), как показано ниже, как ответ sqlalchemy.

rows = (
    ('aaa', 'bbb', 'ccc', 'ddd', 1, 2, 1, 2, 1000, 200, 300, 400, 200, 200),
    ('eee', 'fff', 'ggg', 'hhh', 1, 1, 3, 3, 900, 400, 100, 100, 100, 1000),
    ...
)

и я хочу переформатировать, как показано ниже.

a = (('aaa', 'bbb', 'ccc', 'ddd', 1, 2, 1, 2),('eee', 'fff', 'ggg', 'hhh', 1, 1, 3, 3), ...)
b = ((1, 2, 1, 2, 1000, 200, 300, 400, 200, 200), (1, 1, 3, 3, 900, 400, 100, 100, 100, 1000), ...)

Я придумал этот код, и он займет 6 ~ 7 секунд с 1,2 м строк.

a = []
b = []
for r in rows:
    a.append(r[:8])
    b.append(r[4:])

Два списка понимания медленнее, чем выше. на 1 ~ 2 секунды

a = set(r[:8] for r in rows)
b = tuple(r[4:] for r in rows)

Это нормальная скорость или она слишком медленная в python? какие-либо решения, чтобы ускорить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...