gue*_*tli 7 python optimization loops
我想优化.
connection = get_db_connection()
for item in my_iterator:
push_item_to_db(item, connection)
Run Code Online (Sandbox Code Playgroud)
退税:
get_db_connection()是慢的.如果my_iterator是空的,那么我想避免调用它.
connection = None
for item in my_iterator:
if connection is None:
connection = get_db_connection()
push_item_to_db(item, connection)
Run Code Online (Sandbox Code Playgroud)
退税:
如果有100k项my_iterator,则if connection is None调用100k次(尽管只需要一次).我想避免这种情况.
get_db_connection()如果迭代器为空,请不要调用if connection is None:每次迭代都不要无用地调用.任何的想法?
你可以这样做:
connection = None
for item in my_iterator:
if connection is None:
connection = get_db_connection()
push_item_to_db(item, connection)
Run Code Online (Sandbox Code Playgroud)
简单解决方案 不需要过度思考它.即使有100k操作,x is None也只是一个Python操作码的参考比较.与每次插入时发生的完整tcp往返+磁盘写入相比,您真的不需要优化它.