Dan*_*äck -3 python lambda list filter
我有一个问题,我正在尝试使用Lambda函数从列表中打印出1个特定元素.
我有一个列表,我想使用Lambda过滤,我想从列表中只打印出"Python":
languages = ["HTML", "JavaScript", "Python", "Ruby"]
Run Code Online (Sandbox Code Playgroud)
执行时,我将整个列表打印到控制台!我不知道我在这里做错了什么.
languages = ["HTML", "JavaScript", "Python", "Ruby"]
print filter(lambda x: x[2], languages)
Run Code Online (Sandbox Code Playgroud)
有什么建议?
您要求filter()返回其第三个字母存在且不为空的所有元素.这对所有元素都是如此,因此您可以获得整个列表.请记住,过滤器函数应用于过滤列表中的每个元素.从[ filter()功能文档](
注意,这
filter(function, iterable)相当于[item for item in iterable if function(item)]if函数不是None,[item for item in iterable if item]如果函数是None.
如果你想要第3个元素,你不应该使用过滤,只需选择一个元素:
print languages[2]
Run Code Online (Sandbox Code Playgroud)
如果要过滤特定值,请将lambda要返回的值更改True为要从列表中检索的值.您可以要求所有以...开头的值,P例如:
print filter(lambda x: x.startswith('P'), languages)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |