gpt4 book ai didi

python - 在 Python 中循环 : Do stuff before first iteration

转载 作者:太空狗 更新时间:2023-10-29 22:21:38 24 4
gpt4 key购买 nike

我要优化。

简单的解决方案

connection = get_db_connection()
for item in my_iterator:
push_item_to_db(item, connection)

缺点:

get_db_connection() 很慢。如果 my_iterator 为空,那么我想避免调用它。

“if None”解决方案

connection = None
for item in my_iterator:
if connection is None:
connection = get_db_connection()
push_item_to_db(item, connection)

缺点:

如果 my_iterator 中有 100k 个项目,则 if connection is None 将被调用 100k 次(尽管只需要一次)。我想避免这种情况。

完美解决...

  1. 如果迭代器为空,不要调用 get_db_connection()
  2. 不要调用 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)

简单的解决方案。没必要想太多。即使有 100k 次操作,x is None 也只是采用一个 Python 操作码的引用比较。与每次插入时发生的完整 tcp 往返 + 磁盘写入相比,您真的不需要优化它。

关于python - 在 Python 中循环 : Do stuff before first iteration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36399808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com