首页 > 解决方案 > 添加包含 -1 的列表并将其与整数相乘的目的是什么?

问题描述

最近在看一篇深度学习论文相关的代码,repo在这里:https ://github.com/wuyifan18/DeepLo​​g/blob/master/LogKeyModel_predict.py

这与python有更多的关系,所以我不会提及它。下面是我们需要解析的文件:

5 5 5 22 11 9 11 9 11 9 26 26 26 23 23 23 21 21 21 
5 5 22 5 11 9 11 9 11 9 26 26 26 
5 22 5 5 11 9 11 9 11 9 26 26 26 
5 22 5 5 11 9 11 9 11 9 26 26 26 
5 22 5 5 11 9 11 9 11 9 26 26 26 23 23 23 21 21 21 
22 5 5 5 11 9 11 9 11 9 26 26 26 23 23 23 21 21 21 
5 22 5 5 11 9 11 9 11 9 26 26 26 23 23 23 21 21 21 
5 5 5 22 11 9 11 9 11 9 26 26 26 2 23 23 23 21 21 21 
5 22 5 5 11 9 11 9 11 9 26 26 26

以下函数应该解析它。首先,我们取每一行,并制作一个列表,其中元素是该行中的数字,由空格分隔。然后我们在 line 处将所述数字减一###。接下来发生什么?

def generate(name):
    hdfs = set()
    # hdfs = []
    with open('data/' + name, 'r') as f:
        for ln in f.readlines():
            ln = list(map(lambda n: n - 1, map(int, ln.strip().split()))) ###
            ln = ln + [-1] * (window_size + 1 - len(ln))
            # print(ln)
            hdfs.add(tuple(ln))
    print('Number of sessions({}): {}'.format(name, len(hdfs)))
    return hdfs

我不确定确切的目的ln = ln + [-1] * (window_size + 1 - len(ln))是什么。它在做什么?我以前没有看到在很多地方使用过列表乘法,所以我不确定。当我尝试打印更多内容时,似乎-1根本不存在ln。有人有什么想法吗?

标签: python

解决方案


在不深入研究代码的情况下,我们的想法是根据窗口使所有行的长度相同


推荐阅读