2015-10-09 164 views
0

我正在使用字典文件。我只是需要用詞來結束「它」。我在使用計數器計算雙輔音時,以這些單詞的「ed」結尾。我應該接收回來的代碼是(最後3行):查找以字母「it」結尾的單詞...否定所有其他單詞?

wait waited 
worrit worrited 
simple= 83 double= 45" 

從我有什麼,我需要做的就是擺脫沒有在結束所有換句話說,「它」和我無法提出解決方案。單詞endswith只是重印了一些單詞。

words=[line.rstrip() for line in open('')] 
wordset=set(words) 
count=0 
countt=0 
for word in words: 
    if word[-1] != 't': continue 
    if word+'i' in wordset: continue 
    simple = word + 'ed' 
    double = word + 'ted' 
    if simple in wordset: 
     print(word,simple) 
     count+=1 
    elif double in wordset: 
     print(word,double,'*') 
     countt+=1 
print('simple=',count,' double=',countt) 
+0

如果不是以「it」結尾的話,您是否要計算一個「tt」字(「tt」in word') ( 「它」)')? – jfs

+0

我只需要以「it」結尾的單詞。我在使用計數器計算雙輔音時,以這些單詞的「ed」結尾。 –

+0

你只在t_中檢查_ending。如果單詞[-2:]!='它'不會'繼續'更合適嗎?什麼是'如果word +'我'在wordset:繼續'應該完成? –

回答

0
words = "wait waited worrit worrited simple" 
word = words.split() 
for w in word: 
    if w.endswith('it'): 
     print(w) 
    else: 
     pass 

在這裏,我通過空間分割字符串,並因此得到了一個清單。 有後,我檢查是否列表 元素的endsWith「它」與否

+2

好答案*解釋*以及提供代碼。考慮更新您的答案,以包含有關此代碼如何工作以及爲什麼這是最佳選項的解釋。 – Ajean

+0

感謝您的建議@Ajean – trishnag

0

坦白地說,我不知道我理解正確的話你的問題,特別是考慮到示例代碼,但我會採取一個刺它:) 下面是一個示例代碼如何獲得與「它」和單一打印數結尾的單詞和連續的「T」時,過去時(正確:):

line = "wait waited worrit worrited simple wit witted" 
words = set(line.split()) 

it_words = [el for el in words if el.endswith('it')] 
simple_count = 0 
double_count = 0 

for w in it_words: 
    if w+'ed' in words: 
     print(w, w+'ed') 
     simple_count += 1 
    elif w+'ted' in words: 
     print(w, w+'ted') 
     double_count += 1 

print ('simple = {0}, double = {1}'.format(simple_count, double_count)) 

在第4行你所有以'it'結尾的單詞使用列表理解;那麼我們迭代它們 - 第8行 - 這比全套更有效,因爲這些是我們唯一關心的。 在循環內部有一個簡單的檢查,如果在原始集中存在附加'ed'和'ted'的單詞,並且相應的計數器遞增。

順便說一句,這可以大大優化大型集(例如,整理它)。

HTH

P.S.原諒任何錯別字,這是可怕的經驗,在ipad上輸入python :)

相關問題