#python-3.x #optimization
Вопрос:
import numpy as np hash_list = [['obi', 'is', '#alive'],['oge', 'is', 'beautiful'], ['Ade', 'the', '#comedian', 'de', '#rich'],['Jesus', 'wept']] print(hash_list)
Выход: [['obi', 'is', '#alive'], ['oge', 'is', 'beautiful'], ['Ade', 'the', '#comedian', 'de', '#rich'], ['Jesus', 'wept']]
Ниже приведен код, который мне нужно оптимизировать для повышения производительности. Выполнение кода занимает слишком много времени(например, экспоненциально) по мере увеличения размера списка
a=[] for x in hash_list: b=[] a.append(b) for i in x: if i[0]=="#": b.append(i) for x in range(len(a)): if a[x]==[]: a[x]=np.nan print(a)
Выход: [['#alive'], nan, ['#comedian', '#rich'], nan]
Комментарии:
1. Этот код не является экспоненциальным.
2. Работа, выполняемая в нижнем цикле (замена пустых списков w/
nan
s), может быть выполнена в верхнем.