使用double for循环和一对一输入之间有不同的结果

时间:2019-04-05 11:24:03

标签: python pandas for-loop jupyter-notebook

我是Python的初学者。 我正在为循环编码,python中的双循环。 但是当我为for编写循环并一一输入时有两种不同的结果。 我不知道该怎么称呼。 因此,我无法在此处搜索适当的问题。 你能检查我的密码吗?

我的下面的代码


import spacy
import pandas as pd
train =  pd.read_csv('file', delimiter='\t')

s =train['A'] # s = sentences splited by spacy.sentencizer
a =[]
for x in range(len(s))):
    newlist = []
    for y in range(len(s[x])):
        newlist.append(len(s[x][y].text))
    a.append(newlist)

d=[]
newlist2=[]
for f in range(len(a)):
    for g in range(len(a[f])):
        if sum(a[f][0:g+1]) >= 50:      
            newlist2.append(g)   # I need only min value if more 1 result
    d.append(min(news))   

所以,我得到了这个结果:

d[:12]
>>>[2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0] #(after then, **all result is 0**)

但是,我需要的如下:

d[:12]
>>>[2, 2, 1, 2, 3, 1, 0, 2, 1, 3, 0, 1] #(this is example, not real result)

我的麻烦是 当h> 10时,每个结果均为0

但是当我输入len(a[13]) in 'for g in range(len(a[f]))'时,结果是我想要的正确的,而不是使用for循环(for f in range(len(a)))

我想知道我的代码中是否存在一些算法问题,尤其是使用double for循环。

0 个答案:

没有答案