Python中關於list、tuple、字符串的比較
Tuple
元組tuple的定義:
tuple是一個有序的元素組成的不可變對象的集合,使用小括號()表示,是可叠代對象
元組中數據的訪問
支持索引(下標訪問)
正負所有索引不可以超界,否則引起IndexError報錯
元組通過索引訪問
tuple[index] ,index就是索引,使用中括號訪問
index(value,[value,[start,stop]])
index是使用值查找,從指定區間指定區間查找元組內的元素是否匹配,匹配到第一個就立即返回索引,找不到就拋出valueError異常時間復雜度為O(n)
count(value)
返回元組中值的個數,需要遍歷整個元組,時間復雜都為O(n)
len(tuple)
返回元組中元素的個數。
由於元組是只讀的,所以增,改,刪方法都沒有
字符串
字符串的定義
字符串是一個個字符的集合,是一個有序的序列,使用單引號,雙引號,三引號引住的字符序列,字符串是不可變對象,可以索引,可以叠代。從python3起,字符串是Unicode類型
字符串元素的訪問可通過下標訪問。
字符串的連接
join() “string”.join(iterable)
將可叠代對象連接起來,使用指定的string作為分割符,返回一個新的字符串
+
將兩個字符串連接起來,生成一個新的字符串,空間占用翻倍
字符串的分割分成兩部分split系和partition系
split :將字符串按照分割符分割成若個個字符串,並返回列表。
split(seq=None,maxaplit=)是從左至右進行切割,可以指定分割字符串,在不指定的情況下默認是空白字符左分割符,還可以指定分割的次數,-1表示遍歷整個字符串
rsplit (seq=None,maxsplit=-1)是從右至左進行切割,用法同split一樣。
splitlines([keepends]) 是按照行來進行切分字符串,keepends指的是否保留行分割符,行分割符包括\n,\r\n,\r
partition:將字符串按照分割符分割成兩端,返回2段和分割符的元組
partition(seq):從左至右,遇到分割符就把字符串分割為兩部分,返回頭,分隔符,尾三部分的三元組,沒有找到分割符,就返回頭,空的分割,空尾的三元組。必須指定seq
Rpartition(seq):從右至左,遇到分割符就把字符串分割成兩部分,和partition用法一樣。
字符串針對於英文的一些方法:
upper() 全大寫
lower() 全小寫
swapcase() 交換大小寫
title() 標題的每個單詞都大寫
capitalized()首個單詞大寫
center(width[,fillchar]) 以長度為寬度的字符串為中心返回,使用指定的fillchar完成填充
zfill(width) 返回一個字符串,左邊右ASCII ‘0’填充的字符串,居右,左邊右0填充。
ljust(width[,fillchar]) 左對齊
rjust(width[,fillchar]) 右對齊
字符串的查找及修改(字符串不可變,原字符串不修改)
“修改”:
replace(old,new,[,count])字符串中找到匹配替換為新字串,放回新字符串,可以指定替換幾次,不指定就是所有匹配的都替換
strip([chars])從字符串兩端去除指定的字符集chars中的所有字符,不指定chats,去除兩端的空白字符
lstrip([chars])從左邊開始
rstrip ([chars]) 從右邊開始
字符串的查找:
find(sub[,start[,end]])
在指定的區間[start,end],從左至右,查找字串sub.找到返回索引,沒找到放回-1
rfind(sub[,start[,end]])
在指定的區間從右至左,和find一樣
index(sub[,start[,end]])
在指定的區間[start,end],從左至右,查找字串sub,找到返回索引,沒找到就拋出異常valueError
rIndex(sub[,start[,end]])
在指定的區間[start,end]從左至右,查找字串sub,和index使用一樣
len() 返回字符串中字符的個數
count(sub[,start[,end]])
在指定的區間[start,[end]],從左至右,統計字串sub出現的次數
字符串的判斷:
endswith(suffix[,start[,end]])
在指定的區間,字符串是否是suffix結尾
startswith(prefix[,start[,end]])
在指定的區間[start,end],字符串是否是prefix開頭
isalnum() 是否是數字和字母的組成
isalpha() 是否是字母
isdecimal() 是否只包含十進制數字
isdigit() 是否全部是數字(0~9)
isifentifier() 是不是字母和下劃線開頭,其他都是字母,數字,下劃線
islower 是否都是小寫
isupper() 是否都是大寫
isspace() 是否只包含空白字符
字符串的格式化:
在python3中,字符串的格式化鼓勵使用format()函數
format()函數格式字符串語法
“{}{XXX}”.format(*args,**kwargs) 返回一個字符串args是位置參數,是一個元組,kwargs是關鍵字參數,是一個字典。花括號表示占位符,{}表示按照順序匹配位置參數,{n}表示取位置參數索引位n的值。{XXX}表示在關鍵字參數中搜索名稱一致的。{{}}表示打印花括號。
format()函數中使用的參數
位置參數
就是按照位置順序用位置參數替換前面的格式化字符串的占位符
關鍵字符參數或命名參數
位置參數按照序號匹配,關鍵字參數按照名稱匹配
訪問元素
“{0[0].}{0[1]}’.format((‘www’,’dsfa’))
對象屬性訪問
可以直接訪問對象的屬性
可以直接使用對齊方式:
< 左對齊
>右對齊
^居中對齊
List | tuple | 字符串 |
可變對象 | 不可變對象 | 不可變對象 |
使用[] | 使用() | 使用‘’,“”,“”“” |
可叠代對象 | 可叠代對象 | 可叠代對象 |
有序的序列,可以索引 | 有序的序列,可以索引 | 有序的序列,可以索引 |
index(value,[start,[ends]]) | index(value,[start,[ends]]) | index(sub,[start,[ends]]) rIndex(sub,[start,[ends]]) find(sub,[start,[ends]]) rfind(sub,[start,[ends]]) |
count(value) | count(value) | count(sub,[start,[ends]]) |
len(list) | len(tuple) | len(str) |
append(object) | replace(old,new,[,count]) | |
insert(index,object) | lstrip([chars]) rstrip ([chars]) | |
extend(iteratable) | ||
+ | + | |
* | * | |
remove() | ||
pop() | ||
clear() | ||
reverse() | ||
sort() | ||
in | in | in |
join
| ||
split() | ||
rsplit() | ||
splitlines() | ||
partition() | ||
rpartition() | ||
upper() | ||
lower() | ||
swapcase() | ||
Title(),capitalize(),center(),zfill(),ljust(),rjust() |
Python中關於list、tuple、字符串的比較