python之字符串的切片操作
對這種經常取指定索引范圍的操作,用循環(huán)十分繁瑣,因此,Python提供了切片(Slice)操作符,能大大簡化這種操作。
-
切片 方法適用于 字符串、列表、元組
-
切片 使用 索引值 來限定范圍,從一個大的 字符串 中 切出 小的 字符串
-
列表 和 元組 都是 有序 的集合,都能夠 通過索引值 獲取到對應的數(shù)據(jù)
-
字典 是一個 無序 的集合,是使用 鍵值對 保存數(shù)據(jù)
-
?
字符串[開始索引:結束索引:步長]注意:
指定的區(qū)間屬于 左閉右開 型 [開始索引, 結束索引) => 開始索引 >= 范圍 < 結束索引
-
從 起始 位開始,到 結束位的前一位 結束(不包含結束位本身)
從頭開始,開始索引 數(shù)字可以省略,冒號不能省略
到末尾結束,結束索引 數(shù)字可以省略,冒號不能省略
步長默認為 1,如果連續(xù)切片,數(shù)字和冒號都可以省略
索引的順序和倒序
-
在 Python 中不僅支持 順序索引,同時還支持 倒序索引
-
所謂倒序索引就是 從右向左 計算索引
-
最右邊的索引值是 -1,依次遞減
-
演練需求
-
截取從 2 ~ 5 位置 的字符串
-
截取從 2 ~ 末尾 的字符串
-
截取從 開始 ~ 5 位置 的字符串
-
截取完整的字符串
-
從開始位置,每隔一個字符截取字符串
-
從索引 1 開始,每隔一個取一個
-
截取從 2 ~ 末尾 - 1 的字符串
-
截取字符串末尾兩個字符
-
字符串的逆序(面試題)
答案
num_str = "0123456789" ? # 1. 截取從 2 ~ 5 位置 的字符串 print(num_str[2:6]) ? # 2. 截取從 2 ~ `末尾` 的字符串 print(num_str[2:]) ? # 3. 截取從 `開始` ~ 5 位置 的字符串 print(num_str[:6]) ? # 4. 截取完整的字符串 print(num_str[:]) ? # 5. 從開始位置,每隔一個字符截取字符串 print(num_str[::2]) ? # 6. 從索引 1 開始,每隔一個取一個 print(num_str[1::2]) ? # 倒序切片 # -1 表示倒數(shù)第一個字符 print(num_str[-1]) ? # 7. 截取從 2 ~ `末尾 - 1` 的字符串 print(num_str[2:-1]) ? # 8. 截取字符串末尾兩個字符 print(num_str[-2:]) ? # 9. 字符串的逆序(面試題) print(num_str[::-1]) ?練習
利用切片操作,實現(xiàn)一個trim()函數(shù),去除字符串首尾的空格,注意不要調用str的strip()方法:
def trim(s):while s[:1] == ' ':s = s[1:] ?while s[-1:] == ' ':s = s[:-1] ?while s[:] == ' ':s = ''return s ? ? if trim('hello ') != 'hello':print('測試失敗!') elif trim(' hello') != 'hello':print('測試失敗!') elif trim(' hello ') != 'hello':print('測試失敗!') elif trim(' hello world ') != 'hello world':print('測試失敗!') elif trim('') != '':print('測試失敗!') elif trim(' ? ') != '':print('測試失敗!') else:print('測試成功!') ?總結
以上是生活随笔為你收集整理的python之字符串的切片操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux的编译器vi之最详细介绍
- 下一篇: 使用python写一个名片管理系统