以列表为例,
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
答案 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)