给定名称列表,输出仅包含由5个以上字符组成的名称的列表

2024-05-29 11:53:16 发布

您现在位置:Python中文网/ 问答频道 /正文

给定名称列表,输出仅包含由5个以上字符组成的名称的列表

names = ["David", "John", "Annabelle", "Johnathan", "Veronica"]

这是我的一张照片,但没有成功

res = list(filter(lambda x: len(str(names[x] > 5, (names)))))

我发现了错误

    res = list(filter(lambda x: len(str(names[x] > 5, (names)))))
TypeError: filter expected 2 arguments, got 1

Tags: lambda名称列表lennamesresfilter字符
2条回答

使用列表理解:

more_than_five = [item for item in names if len(item) > 5]

也许可以练习将此列表理解转换为for循环。。。或者尝试自己的解决方案

列表理解逻辑:

#for everyname in names
#if everyname is greater than 5
#add everyname to list

听写理解的逻辑与听写理解

#create dictionary
#for everyname in names
#add name as key and length of that name as value
#iterate through that dicts items
#check if value is greater than 5
#if so append key to list

下面是一个例子,使用听写理解的逻辑和上面的听写理解

names = ["David", "John", "Annabelle", "Johnathan", "Veronica"]
count = {name:len(name) for name in names}
newNames = [k for k,v in count.items() if v > 5]

下面是一个使用上面列表理解逻辑的示例

names = ["David", "John", "Annabelle", "Johnathan", "Veronica"]
newNames = [name for name in names if len(name) > 5]

相关问题 更多 >

    热门问题