过滤出列表中只含有字母和数字的字符串,采用lambda表达式和filter函数实现。
时间: 2024-09-29 22:07:20 浏览: 36
在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']`,因为这两个字符串只包含字母和数字。
相关问题
过滤出列表中只含有字母和数字的字符串,采用lambda表达式和filter函数实现。并打印出新的列表
在Python中,你可以使用`filter()`函数结合`lambda`表达式来过滤出列表中只包含字母和数字的字符串。`lambda`表达式在这里作为一个简单的条件判断,如果字符串满足仅包含字母和数字的条件,那么它会被保留。以下是示例代码:
```python
input_list = ['abc123', 'hello!', '123456', '@test_', '7890']
filtered_list = list(filter(lambda x: x.isalnum(), input_list))
print(filtered_list)
```
在这个例子中,`lambda x: x.isalnum()`是一个匿名函数,它接收一个参数`x`,并检查`x`是否由字母或数字组成。`filter()`函数应用这个函数到列表`input_list`的每个元素上,返回一个迭代器,其中只包含满足条件的元素。最后将这个迭代器转换成列表,并打印出来。
运行这段代码后,你会得到一个新的列表`['abc123', '123456', '7890']`,这是原列表中只包含字母和数字的元素组成的。
对于一个列表l=['1','2','a','b','c',''],过滤输出其中由数字构成的字符串。要求使用filter函数和lambda表达式
使用filter函数和lambda表达式过滤出由数字构成的字符串,可以使用以下代码:
```
l = ['1', '2', 'a', 'b', 'c', '']
filtered_list = list(filter(lambda x: x.isdigit(), l))
print(filtered_list)
```
输出结果为:['1', '2']
阅读全文