Есть ли лучший, более эффективный способ написать приведенный ниже код для извлечения текста, начинающегося с»#»

#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), может быть выполнена в верхнем.