小疑问
Topic sourcedef not_empty(s):
return s and s.strip()
print(list(filter(not_empty, ['A', '', ' B', None, 'C', ' '])))
这里的廖老师给的函数只能说删除列表中的空的字符串或者空元素,并不能将普通字符串中的空格去除。
比如你所说的' B',当not_empty作用于它时,返回的是' B' and 'B',这么看and两边都不为空或者是FALSE,所以返回的是and右边的值,即为真,然后更具filter的原理,如果' B'经过运算not_empty结果为真,则保留数据' B',反之则去除。
所以这个函数只能起到筛选数据的作用,并不能对元素进行修改
filter是筛选元素,map才能修改元素,你的问题要两步:
l1 = filter(not_empty, L)
l2 = map(str.strip, l1)
print(list(l2))
- 1
一块兢兢业业的手表
def not_empty(s): return s and s.strip()
print(list(filter(not_empty, ['A', '', ' B', None, 'C', ' ']))) 这段代码我在‘B’里加了个空格 按道理输出的结果应该是没有空格的吧,但我输出也是有空格的