如何遍历列表查找某个长度的单词?

时间:2013-04-10 19:33:41

标签: python

以列表为例,

F=['MIKE', 'BALL', 'FISH', 'BAT', 'BEAR', 'CAT', 'AT', 'ALLY']

如何通过所述列表迭代查找用户输入的具有一定长度的所有单词?我以为会是......

number=input("How long would you like your word to be?")
possible_words=[]
for word in F:
     if word(len)=number:
          possible_words+=word 

4 个答案:

答案 0 :(得分:5)

这会为您提供长度为list

N个字词
possible_words = [x for x in F if len(x) == N]

请注意,您有list,而不是字典

答案 1 :(得分:2)

您也可以在此处使用filter

 filter(lambda x:len(x)==number, F)

帮助(过滤器)

In [191]: filter?
Type:       builtin_function_or_method
String Form:<built-in function filter>
Namespace:  Python builtin
Docstring:
filter(function or None, sequence) -> list, tuple, or string

Return those items of sequence for which function(item) is true.  If
function is None, return the items that are true.  If sequence is a tuple
or string, return the same type, else return a list.

答案 2 :(得分:0)

虽然在代码大小和其他答案的整体优雅方面这是“劣等”,但它与原始代码的相似性可能有助于理解其中的错误 实施

F=['MIKE', 'BALL', 'FISH', 'BAT', 'BEAR', 'CAT', 'AT', 'ALLY']

number=input("How long would you like your word to be?")
possible_words=[]
for word in F:
    if len(word) == number:
        possible_words.append(word)

要检查字符串的长度,请使用len(字符串)而不是字符串(len)。 possible_words是一个列表,并为其添加元素,使用.append()而不是+ =。 + =可用于增加数字或向字符串添加单个字符。记得在进行比较时使用double equals(==)而不是single(=)。

答案 3 :(得分:0)

您可以使用内置过滤功能。

print filter(lambda word: len(word) == N, F)