了解 Python 數組切片操作的技巧

一、基本概念


一般來說,Python 數組(也稱為「列表」)切片指的是對數組的某一部分進行截取,生成新數組的過程。數組中每個元素都有一個對應的索引(Index),索引從0開始。通過切片操作,我們可以指定一個範圍,提取出數組中的一段連續區間。Python支持切片和索引等操作,使得對數組的處理更加靈活和高效。

切片有兩個 colon(冒號)表示,用兩個數字表示的切片表示從第一個數字代表的索引指向的元素開始到第二個數字代表的索引指向的元素結束,但是不包括該元素。例如,arr[2:5] 表示從 arr 數組的索引為2的位置開始截取,直到索引為5的位置結束(但是不包括索引為5的位置的元素),截取後的數組是 arr[2]、arr[3]、arr[4] 這三個元素組成的新數組。

arr = [1, 2, 3, 4, 5]
new_arr = arr[2:5]
print(new_arr)   # [3, 4, 5]

二、切片的應用場景


切片操作在編寫程序時經常用到,可以快速獲得數組的子串、子列表或子數組。它還可以用來在處理大數據集的時候使得代碼更具可讀性和可維護性。

1. 提取數組的子串
提取數組的子串是切片的一種常見應用場景。例如,可以通過如下代碼提取一個數組的前3個元素。

arr = [1, 2, 3, 4, 5]
new_arr = arr[:3]
print(new_arr)   # [1, 2, 3]

通過在冒號左邊不指定索引值,表示提取數組的第0個元素。

2. 單步切片
單步切片用於提取數組中每個隔一個元素的元素。例如,如下代碼可以提取一個數組中隔一個元素的元素。

arr = [1, 2, 3, 4, 5]
new_arr = arr[::2]
print(new_arr)   # [1, 3, 5]

通過在冒號左邊、冒號右邊和中間都不指定數字,表示提取數組的第0個元素開始,以步長為1提取整個數組中每個隔一個元素的元素。

3. 逆序切片
逆序切片指的是將整個數組逆序輸出。例如,如下代碼可以將一個數組逆序輸出。

arr = [1, 2, 3, 4, 5]
new_arr = arr[::-1]
print(new_arr)   # [5, 4, 3, 2, 1]

通過在冒號左邊不指定索引值,表示提取數組的第0個元素。通過在冒號右邊不指定索引值,表示提取整個數組。通過在中間指定步長為-1,表示每次取一個元素,並且是從後往前取。

4. 截取除最後一位外的所有元素
切片還可以用於提取除最後一位數組元素外的其餘元素,可以通過如下代碼實現。

arr = [1, 2, 3, 4, 5]
new_arr = arr[:-1]
print(new_arr)   # [1, 2, 3, 4]

通過在冒號右邊不指定索引值,表示提取整個數組。通過在冒號左邊指定索引值為0,表示從數組的第0個元素開始,直到倒數第二個元素結束。

三、高級操作


除了基本的切片操作,Python 數組還提供一些高級的切片技巧。

1. 切片賦值
可以通過切片操作將一個數組的一段區間賦值給另一個數組。例如,如下代碼將一個數組的前3個元素賦值給另一個數組。

arr1 = [1, 2, 3]
arr2 = [4, 5, 6]
arr2[:3] = arr1
print(arr2)   # [1, 2, 3, 6]

通過在 arr2 的前三個元素位置使用 arr1 的前三個元素進行賦值,最終得到的數組 arr2 中的前三個元素變成了[1, 2, 3],而原本的arr2[3]則變成了 arr2[2]的值為6。

2. 切片刪除元素
還可以使用切片操作刪除數組的一段區間的元素。例如,如下代碼將一個數組的前3個元素刪除。

arr = [1, 2, 3, 4, 5]
arr[:3] = []
print(arr)   # [4, 5]

通過在 arr 的前三個元素位置賦一個空數組,可以將 arr 的前三個元素刪除,最終得到[4, 5]。

3. 切片中使用布爾表達式
切片中我們還可以使用布爾表達式來篩選數組元素。例如,如下代碼將一個數組中大於2的元素提取出來。

arr = [1, 2, 3, 4, 5]
new_arr = [i for i in arr if i > 2]
print(new_arr)   # [3, 4, 5]

通過列表推導式的方式,篩選出arr數組中所有大於2的元素,生成新數組[new_arr]後輸出。

四、總結


在 Python 數組中,數組的切片操作可以說是一個非常常用且強大的工具,可以實現對數組的任意子串切取,並且方便高效。通過本文對 Python 數組切片操作的技巧進行了介紹,希望大家能夠更加熟練地操作和使用切片。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/244846.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:04
下一篇 2024-12-12 13:04

相關推薦

  • 使用vscode建立UML圖的實踐和技巧

    本文將重點介紹在使用vscode在軟體開發中如何建立UML圖,並且給出操作交互和技巧的指導。 一、概述 在軟體開發中,UML圖是必不可少的重要工具之一。它為軟體架構和各種設計模式的…

    編程 2025-04-29
  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Python去掉數組的中括弧

    在Python中,被中括弧包裹的數據結構是列表,列表是Python中非常常見的數據類型之一。但是,有些時候我們需要將列表展開成一維的數組,並且去掉中括弧。本文將為大家詳細介紹如何用…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • Python磁碟操作全方位解析

    本篇文章將從多個方面對Python磁碟操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件許可權修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • Python元祖操作用法介紹

    本文將從多個方面對Python元祖的操作進行詳細闡述。包括:元祖定義及初始化、元祖遍歷、元祖切片、元祖合併及比較、元祖解包等內容。 一、元祖定義及初始化 元祖在Python中屬於序…

    編程 2025-04-29

發表回復

登錄後才能評論