Python 循环函数调用中的内存使用与变量赋值
Python memory use in loop function call vs variable assigment
假设我有一个数据框,我想将其转换为字典列表并循环遍历它们。
什么会更有效率?
df = some_dataframe
df_as_list = df.to_dict('records')
for i in df_as_list:
requests.get(i['url'])
或
df = some_dataframe
for i in df.to_dict('records'):
requests.get(i['url'])
第二个示例是否在每个循环中调用 to_dict()?
只有一次调用 to_dict
。 for
循环基本上等同于
t = iter(df.to_dict('records'))
while True:
try:
i = next(t)
except StopIteration:
break
requests.get(i['url'])
是否将df.to_dict
的结果赋给变量并不重要,因为结果只是传递给iter
,并且该迭代被多次传递给 next
。
假设我有一个数据框,我想将其转换为字典列表并循环遍历它们。
什么会更有效率?
df = some_dataframe
df_as_list = df.to_dict('records')
for i in df_as_list:
requests.get(i['url'])
或
df = some_dataframe
for i in df.to_dict('records'):
requests.get(i['url'])
第二个示例是否在每个循环中调用 to_dict()?
只有一次调用 to_dict
。 for
循环基本上等同于
t = iter(df.to_dict('records'))
while True:
try:
i = next(t)
except StopIteration:
break
requests.get(i['url'])
是否将df.to_dict
的结果赋给变量并不重要,因为结果只是传递给iter
,并且该迭代被多次传递给 next
。