如何巢发电机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何巢发电机相关的知识,希望对你有一定的参考价值。

我期待到发电机,以使我的一些代码效率更高。目前不知道我怎么能/应该处理嵌套的,每创建一个列表循环。嵌套循环再生成用于for循环的每一步的值的列表。这些值是所供给的数据的3列的向量归一化。从这个列表中的最高值取并添加到由该函数返回的列表。看来这可以通过使用发电机来更有效的制造。我不知道但是如何处理嵌套的for循环的功能将停止对第一产量。

代码,因为它是目前;

def define_max_values(data, indexes):

    max_values = []

    for iter in range(len(indexes)):
        data_index_window = data[index[iter] - 5:index[iter] + 50]
        for i in range(len(data_index_window)):
            sub_list = []   
            sub_list.append(np.linalg.norm(data_index_window.iloc[i, 0:3].values))

        max_values.append(max(sub_list))
    return max_values

我想这也可以变成这样,使用一台发电机

def define_max_values(data, indexes):
     for iter in range(len(indexes)):
            data_index_window = data[index[iter] - 5:index[iter] + 50]
            for i in range(len(data_index_window)):
                sub_list = []
                sub_list.append(np.linalg.norm(data_index_window.iloc[i, 0:3].values))

            yield(max(sub_list)

这似乎更可读/高效的代码了,但不知道是否/如何我可以替换为其他产量内list.append。

答案

max不需要序列,它可搭配发电机也可以使用,是这样的:

def define_max_values(data, indexes):
    for iter in range(len(indexes)):
        data_index_window = data[index[iter] - 5:index[iter] + 50]
        yield max(np.linalg.norm(
                          data_index_window.iloc[i, 0:3].values) 
                  for i in range(len(data_index_window)))

以上是关于如何巢发电机的主要内容,如果未能解决你的问题,请参考以下文章

arduino的L298N电机驱动模块如何和直流电机接线?

poj2356Find a multiple——鸽巢定理运用

控制步进电机C语言代码解释

Two progressions(CodeForces-125D)[鸽巢原理]

cellspacing与cellpadding

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js