我是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循环。