我的for循环如下所示:
Object_id_lst = []
for id_tic in ticket_df['ID']:
get_object_id = api_client.crm.tickets.associations_api.get_all(ticket_id=id_tic, to_object_type='contacts')
if len(get_object_id.results) > 0:
Object_id_lst.append(get_object_id.results[0].to_object_id)
else:
object_id = 0
Object_id_lst.append(object_id)
我想看看是否有一种方法可以将其转换为列表理解,从而缩短计算时间。
3条答案
按热度按时间qoefvg9y1#
我不认为列表解析会有多大帮助,其他优化可能会有更大帮助。
我的优化(除了理解):
get_all
函数一次,而不是每次。.results
一次而不是两次。results
的真值,而不是在其上调用len
,与0
进行比较,并检查比较结果的真值。另一种选择(应该在函数中,而不是全局的,这样你可以得到更快的变量):
uxh89sit2#
这并不漂亮,但是可以通过使用walrus操作符在列表解析中赋值
get_object_id
来实现,这样就可以测试它的长度,也可以在解析的值部分使用它。更实际地说,我会将所有条件代码移到一个函数中,并Map它。
z4iuyo4d3#