」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Python - 索引和切片

Python - 索引和切片

發佈於2024-08-01
瀏覽:733

Python - Indexing and Slicing

索引和切片是Python中的一個重要概念,尤其是當我們使用字串時。

索引:

WKT,字串只不過是字元序列。
因此,每個字元都有一個位置,即 index,存取它們在該特定字串中的位置稱為 indexing.

在Python中,我們有基於零的索引,即字串的第一個字元的索引(位置)為0而不是1,然後第二個字元的索引(位置)為1,依此類推。

例如,

>     H E L L O W O R L D
>     0 1 2 3 4 5 6 7 8 9

這被稱為正索引,因為我們只使用正數來引用索引。

你可能會問「那我們也有負面指示嗎??」
Ofc,但在這裡我們沒有將零作為第一個位置,因為它不是負數。

負索引允許我們從字符串末尾訪問字符,即最後一個字符的索引為-1,倒數第二個字符的索引為-2,依此類推。

>      H  E  L  L  O  W  O  R  L  D
>    -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
word = "HELLOWORLD"

print(word[0])
print(word[5])

H
W

相似地,

print(word[-1])
print(word[-6])

D
0

這就是索引。


切片:

將一條繩子切片想像成從整個蛋糕上切下一片蛋糕。我們可以指定從哪裡開始切割(索引)、在哪裡結束(結束索引),甚至每個切片應該有多大(步驟)。這樣,我們就可以按照我們喜歡的方式製作蛋糕(或繩子)的較小部分!

在Python中,對字串進行切片可以讓我們透過指定字串中的起始位置和結束位置來取得字串的特定部分。
因此,例如,如果 message 包含“HELLOWORLD”,則 message[3:7] 會給出“LOWO”,因為它從索引 3 ('L') 開始,在索引 7 ('D') 之前結束。這樣,我們就可以提取我們需要的字串的任何部分!

- 切片的基本語法是,

string[start:stop]
  • 起始索引是切片開始的位置,並且該索引是包含在內的。
  • 停止索引是切片結束的位置,但索引是排他的,這表示該索引處的字元不包含在切片中。
text = "HappyBirthday"

print(text[0:5])  
print(text[5:13])

Happy
Birthday  

在Python中對字串進行切片時,我們可以簡單地省略開始或停止索引,以從字串的開頭或結尾進行切片。
就這麼簡單!

- 一步切片,

要指定Python中對字串進行切片時的字元間隔,只需新增冒號後跟步長值即可:

string[start:stop:step]

這允許控制我們在創建切片時如何跳過字串的字元。

message = "HELLOWORLD"
print(message[1::2])    

EORL

message[1::2] 從索引 1 ('E') 開始切片到字串末尾,步長為 2。
因此,它包括索引 1、3、5 和 7 處的字符,即「EORL」。

直到我們看到了正切片,現在讓我們了解負切片。

- 負切片:

  • 負步允許您以相反的順序切片字串。
  • 讓我們以相反的順序從倒數第二個字元到第三個字元進行切片
message = "HELLOWORLD"
print(message[-2:2:-1])

ROWOL

讓我們研究一下某些問題。

#編寫一個函數,它接受一個字串並傳回一個由其第一個和最後一個字元組成的新字串。

word = "Python"
end = word[0] word[5]
print(end)

Pn

#寫一個反轉給定字串的函數。

word = "Python"
print(word[::-1])

nohtyP

#給定一個字串,提取並傳回第3個到第8個字元(含)的子字串。

text = "MichaelJackson"
print(text[3:9])

haelJa

#給定一個電子郵件地址,提取並返回網域名稱。

email = "[email protected]"
domain = email[:-10]
print(domain)

hello_world

#寫一個函數,傳回給定字串中的每三個字元。

text = "Programming"
print(text[::3])

Pgmn

#寫一個函數,跳過每隔一個字符,然後反轉結果字串。

text1 = "Programming"
print(text1[::-2])

gimroP

#編寫一個函數,從給定字串中提取並傳回偶數索引處的字元。

text = "Programming"
print(text[::2])

Pormig

好吧,這就是這裡的基本內容。

.....

版本聲明 本文轉載於:https://dev.to/abys_learning_2024/python-indexing-and-slicing-2moh?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何在Java字符串中有效替換多個子字符串?
    如何在Java字符串中有效替換多個子字符串?
    在java 中有效地替換多個substring,需要在需要替換一個字符串中的多個substring的情況下,很容易求助於重複應用字符串的刺激力量。 However, this can be inefficient for large strings or when working with nu...
    程式設計 發佈於2025-05-12
  • 如何使用Regex在PHP中有效地提取括號內的文本
    如何使用Regex在PHP中有效地提取括號內的文本
    php:在括號內提取文本在處理括號內的文本時,找到最有效的解決方案是必不可少的。一種方法是利用PHP的字符串操作函數,如下所示: 作為替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式來搜索特...
    程式設計 發佈於2025-05-12
  • 在Oracle SQL中如何提取下劃線前的子字符串?
    在Oracle SQL中如何提取下劃線前的子字符串?
    [ 在oracle sql 解決方案: Explanation:SUBSTR function extracts a substring starting from the specified position (0) and continuing for a specified length.IN...
    程式設計 發佈於2025-05-12
  • 在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在JTable中維護jtable單元格渲染後,在JTable中,在JTable中實現自定義單元格渲染和編輯功能可以增強用戶體驗。但是,至關重要的是要確保即使在編輯操作後也保留所需的格式。 在設置用於格式化“價格”列的“價格”列,用戶遇到的數字格式丟失的“價格”列的“價格”之後,問題在設置自定義單元...
    程式設計 發佈於2025-05-12
  • 在Pandas中如何將年份和季度列合併為一個週期列?
    在Pandas中如何將年份和季度列合併為一個週期列?
    pandas data frame thing commans date lay neal and pree pree'和pree pree pree”,季度 2000 q2 這個目標是通過組合“年度”和“季度”列來創建一個新列,以獲取以下結果: [python中的concate...
    程式設計 發佈於2025-05-12
  • 如何有效地選擇熊貓數據框中的列?
    如何有效地選擇熊貓數據框中的列?
    在處理數據操作任務時,在Pandas DataFrames 中選擇列時,選擇特定列的必要條件是必要的。在Pandas中,選擇列的各種選項。 選項1:使用列名 如果已知列索引,請使用ILOC函數選擇它們。請注意,python索引基於零。 df1 = df.iloc [:,0:2]#使用索引0和1 ...
    程式設計 發佈於2025-05-12
  • Java開發者如何保護數據庫憑證免受反編譯?
    Java開發者如何保護數據庫憑證免受反編譯?
    在java 在單獨的配置文件保護數據庫憑證的最有效方法中存儲憑據是將它們存儲在單獨的配置文件中。該文件可以在運行時加載,從而使登錄數據從編譯的二進製文件中遠離。 使用prevereness class import java.util.prefs.preferences; 公共類示例{ 首選...
    程式設計 發佈於2025-05-12
  • 如何從PHP中的Unicode字符串中有效地產生對URL友好的sl。
    如何從PHP中的Unicode字符串中有效地產生對URL友好的sl。
    為有效的slug生成首先,該函數用指定的分隔符替換所有非字母或數字字符。此步驟可確保slug遵守URL慣例。隨後,它採用ICONV函數將文本簡化為us-ascii兼容格式,從而允許更廣泛的字符集合兼容性。 接下來,該函數使用正則表達式刪除了不需要的字符,例如特殊字符和空格。此步驟可確保slug僅包...
    程式設計 發佈於2025-05-12
  • 如何從Python中的字符串中刪除表情符號:固定常見錯誤的初學者指南?
    如何從Python中的字符串中刪除表情符號:固定常見錯誤的初學者指南?
    從python import codecs import codecs import codecs 導入 text = codecs.decode('這狗\ u0001f602'.encode('utf-8'),'utf-8') 印刷(文字)#帶有...
    程式設計 發佈於2025-05-12
  • Python讀取CSV文件UnicodeDecodeError終極解決方法
    Python讀取CSV文件UnicodeDecodeError終極解決方法
    在試圖使用已內置的CSV模塊讀取Python中時,CSV文件中的Unicode Decode Decode Decode Decode decode Error讀取,您可能會遇到錯誤的錯誤:無法解碼字節 在位置2-3中:截斷\ uxxxxxxxx逃脫當CSV文件包含特殊字符或Unicode的路徑逃...
    程式設計 發佈於2025-05-12
  • 為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,輸出...
    程式設計 發佈於2025-05-12
  • Python高效去除文本中HTML標籤方法
    Python高效去除文本中HTML標籤方法
    在Python中剝離HTML標籤,以獲取原始的文本表示Achieving Text-Only Extraction with Python's MLStripperTo streamline the stripping process, the Python standard librar...
    程式設計 發佈於2025-05-12
  • 如何在Java的全屏獨家模式下處理用戶輸入?
    如何在Java的全屏獨家模式下處理用戶輸入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    程式設計 發佈於2025-05-12
  • 如何在其容器中為DIV創建平滑的左右CSS動畫?
    如何在其容器中為DIV創建平滑的左右CSS動畫?
    通用CSS動畫,用於左右運動 ,我們將探索創建一個通用的CSS動畫,以向左和右移動DIV,從而到達其容器的邊緣。該動畫可以應用於具有絕對定位的任何div,無論其未知長度如何。 問題:使用左直接導致瞬時消失 更加流暢的解決方案:混合轉換和左 [並實現平穩的,線性的運動,我們介紹了線性的轉換。...
    程式設計 發佈於2025-05-12
  • Go web應用何時關閉數據庫連接?
    Go web應用何時關閉數據庫連接?
    在GO Web Applications中管理數據庫連接很少,考慮以下簡化的web應用程序代碼:出現的問題:何時應在DB連接上調用Close()方法? ,該特定方案將自動關閉程序時,該程序將在EXITS EXITS EXITS出現時自動關閉。但是,其他考慮因素可能保證手動處理。 選項1:隱式關閉終...
    程式設計 發佈於2025-05-12

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3