如何在 Python 中獲取元組列表中的第一個元素?


元組是 Python 中不可變的資料型別,可以儲存異構資料型別。另一方面,列表是可以儲存異構資料的多種資料型別。在本文中,我們將探討使用基於函式的元件從元組列表中檢索第一個元素的各種方法。我們將探索幾種方法,如迴圈、列表推導式、zip 方法等。

使用迴圈方法

迴圈是在幾乎任何程式語言中常見的語句。我們可以使用迴圈語句以及 Python 可迭代物件的索引屬性來訪問可迭代物件的第一個元素。由於在我們的案例中,我們只想訪問第一個元素,因此我們可以在每次迭代中使用索引號 0。

示例

在以下示例中,我們建立了一個函式,該函式以列表作為輸入並返回列表中所有第一個元素的列表資料型別。在函式下,我們建立了一個空元組,並在每次使用列表進行迭代時,我們將元組元素的第一個元素追加到初始化的列表中。稍後我們建立了一個元組並呼叫該函式來測試結果。

def get_first_element_using_loop(tuples_list):
    first_elements = []
    for tuple in tuples_list:
        first_element = tuple[0]
        first_elements.append(first_element)
    return first_elements
t = [
    ('Apple', 5, True),
    ('Banana', 3, False),
    ('Orange', 2, True),
    ('Grape', 4, False),
    ('Mango', 6, True)
]
print(f"The first elements of the list are: {get_first_element_using_loop(t)}")

輸出

The first elements of the list are: ['Apple', 'Banana', 'Orange', 'Grape', 'Mango']

使用列表推導式

列表推導式是在 Python 中組合表示式和語句並使用它們在列表中建立元素的一種非常方便的方法。對於我們的需求,我們可以使用索引方法和 for 迴圈作為條件表示式來建立列表中的元素。

示例

在以下示例中,我們建立了一個函式,該函式接受列表並返回一個包含元組所有第一個元素的列表。我們使用列表推導式技術建立名為 first_elements 的列表元素。

def get_first_element_using_comprehension(tuples_list):
    first_elements = [tuple[0] for tuple in tuples_list]
    return first_elements

t = [
    ('Apple', 5, True),
    ('Banana', 3, False),
    ('Orange', 2, True),
    ('Grape', 4, False),
    ('Mango', 6, True)
]
print(f"The first elements of the list are: {get_first_element_using_comprehension(t)}")

輸出

The first elements of the list are: ['Apple', 'Banana', 'Orange', 'Grape', 'Mango']

使用 map 方法

Map 是 Python 的另一個重要的內建方法。map 方法將函式應用於可迭代物件的所有元素。它接受兩個引數,即函式名稱和可迭代物件。我們可以使用 lambda 函式和 map 方法來訪問列表中元組的第一個元素。

示例

在以下示例中,我們建立了一個名為 get_first_element_using_map 的函式,該函式獲取包含元組元素的列表並返回列表中元組元素的所有第一個元素。我們使用 map 方法將 lambda 函式應用於每個列表元素。

def get_first_element_using_map(tuples_list):
    first_elements = list(map(lambda x: x[0], tuples_list))
    return first_elements


t = [
    ('Lemon', 3, False),
    ('Strawberry', 7, True),
    ('Watermelon', 1, True),
    ('Pineapple', 4, False),
    ('Kiwi', 2, True)
]

print(f"The first elements of the list are: {get_first_element_using_map(t)}")

輸出

The first elements of the list are: ['Lemon', 'Strawberry', 'Watermelon', 'Pineapple', 'Kiwi']

使用解包技術

這是一種提取所有第一個元素的巧妙方法。首先,我們可以使用 for 迴圈;接下來,我們可以透過為其指定一些名稱來解包第一個元素。我們還可以使用 * 指定其他元素。我們可以使用列表推導式將所有元素追加到列表中。

語法

for first_element, *_ in iterable:
    # other codes

在這裡,我們將第一個元素分配為 first_element。請注意,您可以為其分配任何名稱。“* _” 指定我們還有其他元素,但我們對此不感興趣。“iterable” 是任何可迭代物件,如元組列表等。

示例

在以下程式碼中,我們使用了列表推導式技術和 Python 的解包技術。在這裡,我們將列表的每個元組元素的第一個元素命名為 first_element 並將其追加到列表中。我們建立的函式是非空函式,它返回生成的列表。

def get_first_element_using_unpacking(tuples_list):
    first_elements = [first_element for first_element, *_ in tuples_list]
    return first_elements

t = [
    ('Lemon', 3, False),
    ('Strawberry', 7, True),
    ('Watermelon', 1, True),
    ('Pineapple', 4, False),
    ('Kiwi', 2, True)
]

print(f"The first elements of the list are: {get_first_element_using_unpacking(t)}")

輸出

The first elements of the list are: ['Lemon', 'Strawberry', 'Watermelon', 'Pineapple', 'Kiwi']

使用 Zip 方法

Python 中的 zip() 函式是一個內建函式,允許您將多個可迭代物件(如列表、元組或字串)組合成一個元組的單個迭代器。zip() 生成的每個元組都包含來自輸入可迭代物件中對應位置的元素以及元素本身。由於返回值是一個包含元組元素的列表,因此我們可以使用索引方法訪問列表的第一個元素。

示例

在以下程式碼中,我們建立了一個非空函式,該函式以列表作為引數並返回元組列表中的第一個元素。如果您列印 list(zip(*tuples_list)) 的結果,您將得到如下結果

[('Lemon', 'Strawberry', 'Watermelon', 'Pineapple', 'Kiwi'), (3, 7, 1, 4, 2), (False, True, True, False, True)]

由於我們只需要列表中的第一個元素,因此我們使用了索引方法並將 index 設定為 0。

def get_first_element_using_unpacking(tuples_list):
    return list(zip(*tuples_list))[0]

t = [
    ('Lemon', 3, False),
    ('Strawberry', 7, True),
    ('Watermelon', 1, True),
    ('Pineapple', 4, False),
    ('Kiwi', 2, True)
]

print(f"The first elements of the list are: {get_first_element_using_unpacking(t)}")

輸出

The first elements of the list are: ('Lemon', 'Strawberry', 'Watermelon', 'Pineapple', 'Kiwi')

結論

在本文中,我們瞭解瞭如何在 Python 中獲取元組列表中的第一個元素。Python 中有幾種方法,如迴圈方法、列表推導式、解包等,可以執行此任務。哪種方法最佳取決於用法和其他因素。我們強烈建議讀者嘗試這些概念,以便對這些主題有更深入的瞭解。

更新於: 2023-07-18

1K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告