從 List 中刪除空字串

從 List 中刪除空字串

最近看到有人用很簡易的 List Comprehension 寫法來把 List 的空字串刪除,經過理解f方法大致如下

1
2
3
4
>>> x = ['hello', '', 'world', '', '', 'python']
>>> A = [i for i in x if i]
>>> print("A =", A)
A = ['hello', 'world', 'python']

這個簡易寫法展開成以下式子以便理解

1
2
3
4
5
6
>>> B = []
>>> for i in x:
>>> if i:
>>> B.append(i)
>>>print("B =", B)
B = ['hello', 'world', 'python']

if i: 是使用邏輯表達式 Boolean 來判斷是否為空字串,TrueFalse

這邊要謹記 Python 認定為 False 的值如:False0None''[](){} ,其餘都是當 True 使用

1
2
3
4
5
6
7
>>> x = ['hello', '', 'world', [], 0, 'python']
>>> C = []
>>> for i in x:
>>> if i:
>>> C.append(i)
>>> print("C =", C)
# C = ['hello', 'world', 'python']

另外也可以將 if i:,視為 if i !="": 來做理解