17. 字串詳解及序列型別
字串是我們在程式中使用非常多的一個物件,對於字串的處理在各種程式語言中也是非常重要的一部分。
1. python中的字串定義
python中的字串,可以使用單引號、雙引號或者三個單引號包含的字元,都是字串。
s1 = '我是一個字串'
s2 = "我也是一個字串"
s3 = ''' 我還是一個字串
我是能換行寫內容的字串
'''
注意:python2中字串字面量對應8位字元或者面向位元組的資料,不能完全支援unicode字串。這樣的情況,如果要使用漢字,可以通過如下方式解決 * 在py檔案的首行,新增
# -*- coding:utf-8 -*-
的註釋,來標識當前檔案是使用utf-8編碼 * 在py中,定義的字串,可以在前面新增一個字元u來標識該字串是使用unicde進行編碼的,如str = u"我是字串"
2. 字串作為模組、類、函式的文件註釋
字串你可以放在模板,類或者函式的第一行,作為對函式的描述作用出現,可以通過木塊、類、函式的doc屬性進行呼叫檢視。
def printName(msg):
"這是一個用來列印給定資訊的函式"
print("您要列印的資訊:" + msg)
printName.__doc__
------------------------------
執行結果:
"這是一個用來列印給定資訊的函式"
模組、類或者函式的文件註釋非常重要,一般情況下是對於當前要使用的模組、類或者函式使用方式的最直接的描述,開發人員在使用的時候可以通過木塊、類或者函式的doc屬性來檢視使用方式。
2. 字串作為序列支援的操作方法
- s[i] : 返回序列中下標為i的元素
- s[i:j]:返回序列中下標從i到j之間的資料,這樣擷取資料也成為切片
- s[i:j:stride]:返回一個擴充套件的切片
- len(s):返回序列中元素資料的數量
- min(s):返回序列中的最小值
- max(s):返回序列中的最大值
- sum(s [, initial]):返回序列中所有資料的和
- all(s):檢查序列中所有的資料是否為True
any(s):檢查序列中任意項是否為True
capitalize() 字串首字元大寫
- isupper() 字串是否全部大寫
- upper() 字串所有字元大寫
- islower() 字串是否所有字元小寫
- lower() 字串中所有字元小寫
- index(str [,start, end]) 獲取指定字元在字串中出現的位置
- t.join(s):使用字串t來拆分字串s,或者將一個列表s中的字串元素按照使用t連線
- replace(old, new):將指定字串中的old字元,使用新字元new進行替換
split(sep, max):將字串使用指定的字元sep進行拆分,max是拆分次數,返回一個列表
字串也是一種序列物件
# 定義一個字串 strx = "hello python!" # 獲取下標為7的資料 strx[7] # 執行結果:y # 獲取下標從2到7的切片 strx[2:5] # 執行結果:"llo p" # 獲取下標從2到9的切面,步長為2 strx[2:9:2] # 執行結果: "lopt" # 反向切片 strx[9:2:-2] # 執行結果:"hy l" # 獲取字串中最小的資料 strx(str) # 執行結果:" " # 獲取字串中最大的資料 strx(str) # 執行結果:w # 按照首字母大寫的方式輸出資料 strx.capitalize() # 執行結果:Hello python! # 判斷字串是否全部大寫和轉換成大寫 strx.isupper() strx.upper() # 執行結果:False, HELLO PYTHONE! # 判斷字串是否全部小寫和轉換成小寫 strx.islower() strx.lower() # 執行結果:True, hello python! # 獲取字元o的位置 strx.index("o") strx.index("o", 5) # 執行結果:4, 10 # 替換字串中的所有的l為x strx.replace("o", "x") # 執行結果:hexxo python! # 拆分字串為列表進行使用 strx.split("o") # 執行結果:["hell", "pyth", "n!"] strx.split("o", 1) # 執行結果:["hell", "python!"] # 建立一個列表 lix = ["h", "e", "l", "l", "o"] # 執行join()方法,將列表資料拼接字串 "".join(lix) # 執行結果:hello # 建立一個列表 lix = [1,2,3,4,5] # 計算序列列表中所有元素的和
3. 其他序列物件中常見的函式操作
python中除了字串,其他的常見序列物件就是列表、元組、集合、字典 列表的操作 * 列表的操作
* append(x):用於在列表的末尾追加元素x
* clear():用於清空列表中的所有資料
* copy():用於複製一份列表中的資料
* count(x):用於查詢統計在列表中指定的元素x出現了多少次
* extend():用於將一個列表中的資料從另一個指定的列表中繼承過來
* index(x):用於查詢指定的元素x在列表中出現的位置索引
* insert(index, ele):用於在指定的位置index增加一個元素ele
* pop():用於刪除最後一個元素
* remove(x):用於在列表中刪除指定的元素x
* reverse():用於反轉列表中的所有資料
* sort():用於列表中的資料進行自然排序
# 建立一個列表
lix = ["hello", "python"];
# 執行列表的方法
lix.append("大牧") # 執行結果:lix = ["hello", "python", "大牧"]
liy = lix.copy() # 執行結果: liy = ["hello", "python", "大牧"]
liy.clear() # 執行結果: liy = []
lix.count("hello") # 執行結果: 1
liy.extend(lix) # 執行結果: liy = ["hello", "python", "大牧"]
lix.index("python") # 執行結果:1
lix.insert(1, "莫邪") # 執行結果: lix = ["hello", "莫邪", "python", "大牧"]
lix.pop() # 執行結果:lix = ["hello", "莫邪", "python"]
lix.remove("莫邪") # 執行結果:lix = ["hello", "python"]
lix.sort() # 執行結果:lix = ["hello", "python"]
- 元組的操作
元組一旦宣告常見,不允許進行修改
* count(x) 統計元組中指定的元素x出現的次數
* index(x) 統計元素中指定的元素x出現的位置
程式碼案例:
t = ("張小凡", "碧瑤", "陸雪琪")
t.count("張小凡") # 執行結果:1
t.index("陸雪琪") # 執行結果:2
- 集合的操作
集合中不會儲存重複資料,同時集合中儲存的資料是無序的
* add()
* clear()
* copy()
* difference()
* difference_update()
* discard()
* intersection()
* intersection_update()
* isdisjoint()
* issubset()
* issuperset()
* pop()
* remove()
* symmetric_difference()
* symmetric_difference_update()
* union()
* update()
字典的操作
字典中的資料是以key:value的形式進行資料儲存的
- clear()
- copy()
- fromkeys()
- get()
- items()
- keys()
- pop()
- popitem()
- setdefault()
- update()
- values()
相關文章
- XML Schema 字串資料型別及約束詳解XML字串資料型別
- Java列舉型別enum的詳解及使用Java型別
- (四)Python中的字串型別及操作Python字串型別
- C#型別詳解C#型別
- String:字串型別字串型別
- SCSS 字串 型別CSS字串型別
- TypeScript 字串型別TypeScript字串型別
- JavaScript 資料型別與型別判斷詳解JavaScript資料型別
- MySQL 資料型別詳解MySQL 資料型別
- JavaScript——資料型別詳解JavaScript資料型別
- SAP 移動型別詳解型別
- 詳解MySQL資料型別MySql資料型別
- C++引用型別詳解C++型別
- XML Schema 複雜元素型別詳解:定義及示例解析XML型別
- 基本資料型別與字串型別資料型別字串
- 操作型別之字串型別字串
- Python 序列型別以及函式引數型別Python型別函式
- PostgreSQL 陣列型別使用詳解SQL陣列型別
- JS -- number資料型別詳解JS資料型別
- C++之string型別詳解C++型別
- Java整型資料型別(詳解)Java資料型別
- 3.8 solidity資料型別詳解Solid資料型別
- Python資料型別詳解03Python資料型別
- Java中的Type型別詳解Java型別
- Python資料型別詳解02Python資料型別
- MySQL 序列 AUTO_INCREMENT詳解及例項程式碼MySqlREM
- CountDownLatch和CyclicBarrier區別及詳解CountDownLatch
- Python基礎:高階變數型別【圖文詳解版(回顧資料型別、列表,元組,字典,字串,公共方法)】Python變數資料型別字串
- 型別自定義格式字串型別字串
- TypeScript 字串字面量型別TypeScript字串型別
- JavaScript中的包裝型別詳解JavaScript型別
- fwMySql資料型別教程示例詳解MySql資料型別
- Go 語言型別系統詳解Go型別
- JavaScript內建物件--Error型別詳解JavaScript物件Error型別
- C++ 使用者輸入與資料型別詳解:建立基本計算器及變數型別C++資料型別變數
- C++ 數學函式、標頭檔案及布林型別詳解C++函式型別
- 基本資料型別之字串資料型別字串
- 資料型別之字串篇資料型別字串
- JavaScript變數與資料型別詳解JavaScript變數資料型別