通过获取给定索引之间的元素来创建另一个列表的切片列表

时间:2019-06-05 11:02:41

标签: python nested-lists

我正在分析串行嗅探器的输出,并且我想计算以下时间戳之间的字节数。我已将日志变成字符串lines的列表,看起来像这样:

  

时间戳记(索引0)

     

数据(索引1)

     

数据(索引2)

     

以此类推

     

时间戳(索引215)

     

数据(索引216)

     

以此类推...

因此,我想创建一个嵌套列表messages,例如,它的第一个元素messages[0]将是从索引1到索引214的lines的元素。

我创建了一个时间戳索引列表timeindexes和一个单独的列表nospaces,在该列表中我消除了时间戳之间元素中字符之间的空格-在计算字节时,我将除以字符数按2。

f=open("snnifflog.txt","r")
lines=[l.strip() for l in f.readlines()]
lines_number=len(lines)

l=0
timeindex=[]
# list of indexes of timestamps in my lines list
while l<lines_number:
    if lines[l].startswith("2019"):
        timeindex.append(l)
    l+=1

nospaces=[]
n=0
#lines list modified by getting rid of spaces
while n<lines_number:
    if not lines[n].startswith("2019"):
        nospaces.append(lines[n].replace(" ",""))
    else:
        nospaces.append(lines[n])
    n+=1

现在我不知道如何添加列表。我了解它的行应从0索引到len(timeindex)-2,它们应该是由元素组成的列表:

零行:

nospaces[timeindex[0]+1]nospaces[timeindex[1]-1]

然后是第1行:

nospaces[timeindex[1]+1]nospaces[timeindex[2]-1]

以此类推...

我不知道如何为此写一个循环

1 个答案:

答案 0 :(得分:0)

这里完全是您在问题中描述的内容,我不知道您在做什么以及为什么需要这样做。

    for(i=0;i<n;++i)
    {
        if(a[0] == a[i])
        {
            f = 1;
            break;
        }
    }
    if(f == 1)
    printf("All elements are same");