1. 程式人生 > >Python中關於list、tuple、字符串的比較

Python中關於list、tuple、字符串的比較

用法 連接 paragraph ble 大寫 空間占用 rabl 長度 命名

List定義及常用的方法見上一篇博客。

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、字符串的比較