2

私がやろうとしているのは、特定の長さの文字列のリストを返すプログラムを作成することです。プログラムを作っているが、極端にずれていると感じる

def lett(lst,n):
res = []
for a in range(1,len(lst)):
               if a == n
                   res = lst[a]
return res

私が望むのは、リストを取得して長さ n のすべての単語を返すことです。そのため、 lett(["boo","hello","maybe","yes","nope"], ) を実行する場合['boo','yes'] を返します

ありがとう!

4

3 に答える 3

2

これを試して:

def lett(lst, n):
    return [x for x in lst if len(x) == n]

または:

def lett(lst, n)
    return filter(lambda x: len(x) == n, lst)
于 2013-02-04T07:05:27.450 に答える
2

filter機能を使用する

def lett(lst, n):
    return filter(lambda x: len(x) == n, lst)

Python 2 ではリストが返されます。Python 3 を使用している場合は、filterオブジェクトが返されるため、リストに変換することをお勧めします。

return list(filter(lambda x: len(x) == n, lst))
于 2013-02-04T07:06:22.363 に答える
0
def lett(lst, n):
    return [tmpStr for tmpStr in lst if len(tmpStr) == n]
于 2013-02-04T07:10:54.343 に答える