第一种
def not_empty(s):
return s and s.strip()
filter(not_empty, ['A', ' ', 'C', '', None, 'B']
# ['A', 'C', 'B']
在Python中,
-
and
和or
的逻辑
'A' and 'B'
返回'B'
,'A' or 'B'
返回'A'
。 -
s and s.strip()
前面的s
是为了判断s
是不是None
值。
然后返回去除空格的字符串。
第二种
instead
result = []
for item in item_list:
new_tiem = do_something_with(item)
result.append(new_item)
with
result = [do_something_with(item) for item in item_list]
Generator Expression
result = (do_something_with(item) for item in item_list)
instead
results = []
for i in range(10):
for j in range(i):
results.append((i,j))
with
results = [(i, j)
for i in range(10)
for j in range(i)]