我正在使用字典文件。我只需要言语结束"它"。我在结束" ed"时使用计数器计算双辅音。这些话。我应该收到的代码是(最后3行):
wait waited
worrit worrited
simple= 83 double= 45"
从我所拥有的,我所需要做的就是摆脱所有其他不会以#34;"而我在提出解决方案时遇到了麻烦。 word.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 :(得分:0)
words = "wait waited worrit worrited simple"
word = words.split()
for w in word:
if w.endswith('it'):
print(w)
else:
pass
这里我按空格分割了字符串,因此得到了一个列表。 我检查后是否有清单 元素以“它”结束
答案 1 :(得分:0)
坦率地说,我不确定我是否正确理解你的问题,特别是考虑到示例代码,但我会对它进行一次尝试:) 这是一个示例代码,如何让所有单词以' it'结尾。以及单打和双打打印的数量。过去时(正确?:):
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”字样的单词即可。并且''存在于原始集合中,相应的计数器会递增。
BTW,这可以针对大型集合进行大大优化(例如,对其进行排序)。HTH
P.S。原谅任何错别字,在ipad上输入python的可怕经历:)