查找单词中第一次出现的字符

时间:2012-09-25 18:22:50

标签: python

我想做什么: 通过过滤下限列表,创建并打印满足以下所有条件的单词列表:

这个词至少有6个字符; 这个词包含字母'e'至少3次; 字母'e'的第一次出现在单词的后半部分。

到目前为止我有这个: 之前使用过:

words = [ line.strip() for line in file(DATA+'english_wordlist.txt') ]

(降级在我的工作中早先定义为部分单词)

[word for word in lowers if len(word)>=6 and word.count('e')>=3 and 'e' is after word(len(word)/2::)]

我知道'e'是单词(len(word)/ 2::)是错误的,但这只是我粗略的逻辑。我到底怎么做到这一点?

3 个答案:

答案 0 :(得分:1)

and word.index('e') >= len(word)/2

答案 1 :(得分:0)

[word for word in lowers if len(word)>=6 and word.count('e')>=3 and 
'e' not in word[int(len(word)/2) + 1:]]
Python中的{p> len(word)/2true division ..因此它可能会给出浮点值.. 因此,将其强制转换为int并添加1以在中间后移动它。

*编辑: - 或者你可以简单地使用len(word)//2floor division)并且不需要进行类型转换.. 所以,这是另一种选择: -

[word for word in lowers if len(word)>=6 and word.count('e')>=3 and 
'e' not in word[(len(word)//2) + 1:]]

答案 2 :(得分:0)

在单词的后半部分首先检查'e'是否等同于知道它不会出现在单词的前半部分。这应该对你有帮助。