所以我认为这个标题会产生很好的搜索结果。无论如何,给定以下代码:它需要一个 yield word 作为来自 text_file_reader_gen() 的 word 并在 while 循环下迭代,直到给出异常的错误(有没有比 try except 更好的方法?)和联锁函数只是把它们混在一起。
def wordparser():
#word_freq={}
word=text_file_reader_gen()
word.next()
wordlist=[]
index=0
while True: #for word in ftext:
try:
#print 'entered try'
current=next(word)
wordlist.append(current) #Keep adding new words
#word_freq[current]=1
if len(wordlist)>2:
while index < len(wordlist)-1:
#print 'Before: len(wordlist)-1: %s || index: %s' %(len(wordlist)-1, index)
new_word=interlock_2(wordlist[index],wordlist[index+1]) #this can be any do_something() function, irrelevant and working fine
new_word2=interlock_2(wordlist[index+1],wordlist[index])
print new_word,new_word2
'''if new_word in word_freq:
correct_interlocked_words.append(new_word)
if new_word2 in word_freq:
correct_interlocked_words.append(new_word2)'''
index+=1
#print 'After: len(wordlist)-1: %s || index: %s' %(len(wordlist)-1, index)
'''if w not in word_freq:
word_freq[w]=1
else:
word_freq[w]=+1'''
except StopIteration,e:
#print 'entered except'
#print word_freq
break
#return word_freq
text_file_reader_gen() 代码:
def text_file_reader_gen():
path=str(raw_input('enter full file path \t:'))
fin=open(path,'r')
ftext=(x.strip() for x in fin)
for word in ftext:
yield word
Q1。是否可以迭代单词并同时将这些单词附加到字典word_freq中,同时枚举 word_freq 中的键,其中键是单词 & 仍在添加,而 for 循环运行和新单词是使用联锁功能进行混合,以便大多数这些迭代一次发生 - 类似于
while word.next() is not StopIteration:
word_freq[ftext.next()]+=1 if ftext not in word_freq #and
for i,j in word_freq.keys():
new_word=interlock_2(j,wordlist[i+1])
我只想要一个非常简单的东西和一个哈希字典搜索,就像非常快,因为它从中获取单词的 txt 文件很长,它也可能有重复。
Q2。即兴创作这个现有代码的方法?Q3。有没有办法'for i,j in enumerate(dict.items())' 这样我就可以同时到达 dict[key] 和 dict[next_key],尽管它们是无序的,但这也是无关紧要的。
更新:在这里查看答案后,这就是我想出的。它正在工作,但我对以下代码有疑问:
def text_file_reader_gen():
path=str(raw_input('enter full file path \t:'))
fin=open(path,'r')
ftext=(x.strip() for x in fin)
return ftext #yield?
def wordparser():
wordlist=[]
index=0
for word in text_file_reader_gen():
有效,但如果我使用yield ftext,它不会。
Q4。基本区别是什么,为什么会发生这种情况?