过滤出列表中只含有字母和数字的字符串,采用lambda表达式和filter函数实现。
时间: 2024-09-29 21:07:20 浏览: 31
将字符串转换为lambda表达式
在Python中,你可以使用`filter()`函数结合`lambda`表达式来过滤掉列表中的非字母和数字字符。`filter()`函数接受一个函数和一个序列作为输入,返回一个新的迭代器,其中包含原序列中使得提供的函数返回True的元素。
下面是一个示例:
```python
def isalnum_string(s):
"""检查字符串是否只包含字母和数字"""
return s.isalnum()
string_list = ['abc123', 'hello!', '123456', '_test_', 'no_digits']
filtered_list = list(filter(lambda x: isalnum_string(x), string_list))
```
在这个例子中,`isalnum_string`函数用于测试每个字符串`s`是否只包含字母和数字。`lambda x: isalnum_string(x)`创建了一个匿名函数,它接收一个字符串并应用`isalnum_string`。`filter()`将这个函数应用于列表中的每个元素,保留那些满足条件的字符串。
最终的`filtered_list`将会是`['abc123', '123456']`,因为这两个字符串只包含字母和数字。
阅读全文