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 word(len)=number:
          possible_words+=word 
4

4 回答 4

6

这会给你一个list长度为的单词N

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

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

于 2013-04-10T19:34:35.470 回答
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.
于 2013-04-10T19:37:11.313 回答
0

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

print filter(lambda word: len(word) == N, F)
于 2013-04-11T14:14:51.963 回答
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(string) 而不是 string(len)。possible_words 是一个列表,要向其中添加元素,请使用 .append() 而不是 +=。+= 可用于增加数字或将单个字符添加到字符串。请记住在进行比较时使用双等号 (==) 而不是单等号 (=)。

于 2013-04-10T21:27:36.687 回答