Python程式:移除列表中的空值


本文討論如何從Python列表中移除空值。在繼續之前,需要了解什麼是空值?什麼是列表?為什麼需要從列表中移除空值?讓我們繼續討論這個主題,並詳細瞭解它們。讓我們從空值開始。

空值定義為沒有值的引數。它表示值不存在。Python有一個特殊的“空”值,表示變數不指向任何內容。

但在Python中沒有**null**,有**None**表示值的缺失。

Python中的None

NONE是一個關鍵字,它表示空字串或缺失值,沒有輸出。在Python中,None是NONE型別類的物件,是Python中的第一類公民,它不被定義為0或任何其他值。

  • None可以賦值給任何變數。

  • 它在Python中不被認為是空字串。

  • 它與0、False或空字串不同。

  • 只有None可以是None。

None的表示

None可以簡單地寫成None,而無需執行任何操作,方法是將變數宣告為等於None。

variable = None

Python中的列表是什麼?

Python中有4種內建資料型別(列表、元組、字典、集合)。列表是其中一種,用於在一個變數中儲存多個專案。它們使用方括號[ ]建立。列表是可變的,這意味著它們是可更改的;它們具有更改其值的能力。它對於插入和刪除操作非常有用。

為什麼需要在Python中移除None?

假設我們有一個大型資料集,在分析它時,我們發現缺失值或無值。為了確保資料清潔,必須從資料集中移除此類空值。空值會影響模型的效能和準確性,因此在處理之前,必須從資料中移除不需要的空值,以提高效率。

如何在Python列表中移除None?

我們可以透過以下五種方法在Python中移除None。讓我們藉助示例逐一討論它們。

使用filter()方法

在這種方法中,我們過濾包含空列表的None值。這是在Python中從列表中移除空值的最簡單方法。

示例

下面的示例使用filter()方法從my_list中移除所有空字串,並將它們重新賦值回my_list.my_list = ['hi','Joy','','whats','','up'],如下所示。

my_list = ['hi', 'Joy', '', 'whats', '', 'up']
print(my_list)
my_list = list(filter(None,my_list))
print(my_list)

輸出

當我們執行上述操作時,會生成以下輸出:

['hi', 'Joy', '', 'whats', '', 'up']
['hi', 'Joy', 'whats', 'up']

使用樸素方法

樸素方法也可以用來從列表中移除None。我們使用for迴圈並檢查值是否為None,如果是,則忽略它,其餘值可以追加到另一個列表中。

示例

在下面的程式中,一個列表初始化了幾個值,包括兩個None值。建立了一個新的空列表,for迴圈遍歷原始列表並檢查每個元素是否等於None,使用樸素方法。

# List with none values
my_list = [4,5, True, False, None, 'List', None]

# Initialize filtered list
new_list = []

# Using for loop
for ele in my_list:
   if ele != None:
      new_list.append(ele)
print ("List with None values: ", my_list)
print ("List without None values: ", new_list)

輸出

執行上述程式後,會生成以下輸出:

List with None values: [4, 5, True, False, None, 'List', None]
List without None values: [4, 5, True, False, 'List']

使用join()方法

我們還有另一種方法可以從列表中移除None,即join()函式。

示例

以下是如何使用join()方法從列表中移除None的示例

myList = ['', 'Salad','is', '','Good', '']
print("Contents of the List : ",myList)
# Remove Empty Value from List
newList = ' '.join(myList).split()
print("Contents of the List after removing  nulls: ",newList)

輸出

執行上述程式以檢視以下輸出:

Contents of the List :  ['', 'Salad', 'is', '', 'Good', '']
Contents of the List after removing  nulls:  ['Salad', 'is', 'Good']

使用列表推導式

我們使用列表推導式來移除空值。這是一種從現有資料型別(如列表、元組和集合)建立新列表的方法。在這種方法中,我們迭代列表,但不包括空列表。

示例

以下是一個示例,展示如何使用列表推導式移除空值。

# List with none values
my_list = [0,1, True, None, False]

# Using List comprehension to remove none values
new_list = [ ele for ele in my_list if ele is not None ]
print("List with None values: ", my_list)
print("List without None values", new_list)

輸出

執行上述程式以檢視以下輸出:

List with None values: [0, 1, True, None, False]
List without None values [0, 1, True, False]

使用enumerate函式

enumerate是一個內建函式,用於迴圈遍歷列表、元組、字典和字串。它允許遍歷序列,但同時跟蹤索引和元素。

示例

在下面的程式中,建立了一個名為my_list的列表,其中包含字串。然後,從現有列表中建立一個新列表,移除所有空格並修改列表。

my_list = [' ', 'myfile', ' ', 'is', 'running', ' ']
my_list = [i for a,i in enumerate(my_list) if i!=' ']
print (my_list)

輸出

執行上述程式會生成以下輸出。

['myfile', 'is', 'running']

結論

在本文中,我們討論了從列表中移除空值的各種方法。我簡單地一步一步地解釋了空值的移除。我們已經看到了所有可以幫助我們從列表中移除空值的不同方法,例如filter()、列表推導式、樸素方法、join方法和enumerate函式。

更新於:2023年4月24日

10K+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.