1. 程式人生 > 其它 >Python入門基礎:從列表說到字串

Python入門基礎:從列表說到字串

技術標籤:Python語言python

Python中的基本概念:列表和元組

Python中的資料型別主要分為兩大類:簡單的單一資料型別,比如整型、浮點型和布林型;負責的容器資料型別,也就是包含多資料型別的一個複合資料,諸如列表list、元組tuple、字典dict、集合set、字串str等。

列表

列表是有序集合,沒有固定大小,能夠儲存任意數量任意型別的 Python 物件,語法為 [元素1, 元素2, ..., 元素n] 。

1. 關鍵點是「中括號 []」和「逗號 ,」

2. 中括號 把所有元素綁在一起

3. 逗號 將每個元素一一分開

列表可以用函式或者推導式來建立

x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]

print(x, type(x))


x = [[0 for col in range(3)] for row in range(4)]

print(x, type(x))

注意:

由於list的元素可以是任何物件,因此列表中所儲存的是物件的指標。即使儲存一個簡單的[1,2,3] ,也有3個指標和3個整數物件。

x = [a] * 4 操作中,只是建立4個指向list的引用,所以一旦a 改變, x 中4個a 也會隨之改變。

x = [[0] * 3] * 4

print(x, type(x))


x[0][0] = 1

print(x, type(x))

注意:列表不像元組,列表內容可更改 (mutable),因此附加 ( append , extend )、插入 ( insert )、刪除 ( remove , pop ) 這些操作都可用。

list.append(obj) 在列表末尾新增新的物件,只接受一個引數,引數可以是任何資料型別,被追加的元素在 list中保持著原結構型別;

list.extend(seq) 在列表末尾一次性追加另一個序列中的多個值(用新列表擴充套件原來的列表);

list.insert(index, obj) 在編號 index 位置前插入obj;

list.remove(obj) 移除列表中某個值的第一個匹配項;

remove 和 pop 都可以刪除元素,前者是指定具體要刪除的元素,後者是指定一個索引;

del var1[, var2 ……] 刪除單個或多個物件。

如果你要從列表中刪除一個元素,且不再以任何方式使用它,就使用del 語句;如果你要在刪除元素後還能繼續使用它,就使用方法pop() 。

重點學習一下:複製列表中的所有元素(淺拷貝)——:

list1 = [123, 456, 789, 213]

list2 = list1

list3 = list1[:]

print(list2)

print(list3)

list1.sort()

print(list2)

print(list3) 
list1 = [[123, 456], [789, 213]]

list2 = list1

list3 = list1[:]

print(list2)

print(list3)

list1[0][0] = 111

print(list2)

print(list3) 

元組

「元組」定義語法為: (元素1, 元素2, ..., 元素n)

1. 小括號把所有元素綁在一起

2. 逗號將每個元素一一分開

1. Python 的元組與列表類似,不同之處在於tuple被建立後就不能對其進行修改,類似字串。

2. 元組使用小括號,列表使用方括號。

# 元組和列表類似,元組被建立後不可更改

t1 = (1,10.31,'python')

t2 = 1,103.31,'python'

print(t1,type(t1),' | ',t2,type(t2))

1. 建立元組可以用小括號 (),也可以什麼都不用,為了可讀性,建議還是用 ()。

2. 元組中只包含一個元素時,需要在元素後面新增逗號,否則括號會被當作運算子使用:

# 元組中只包含一個元素時,元素後要新增逗號,不然誤以為小括號也是元組元素

t00 = 1,

print(t00,type(t00))

比較操作符、邏輯操作符、連線操作符 +、重複操作符 *、成員關係操作符 in 、not in

'''

索引,獲取元組的單個元素

切片,獲取一組元素

'''


week = ('Monday','Tuesday','Thursday','Friday')

print(week[0][0],week[0][1])

week = week[:2]+('Wednesday',)+week[2:]

print(week)

# 元組的重複操作符

t12 = (2,3,4,5)

t23 = t12*2

print(t23)

元組大小和內容都不可更改,因此只有 count 和 index 兩種方法。

'''

元組的大小不可更改

count:記錄某個元素在該元組中出現的次數

index:元素在元組中出現的索引

'''

print(t23.count(3))

print(t23.index(4))

如果你只想要元組其中幾個元素,用萬用字元「*」,英文叫 wildcard,在計算機語言中代表一個或多個元素。

# 解壓元組,萬用字元[*]表示一個或者多個元組中的元素

a,b,*rt,d = t23

print(a,' * ',b,' * ',*rt,' * ',d)


print((1,2)*2,type((1,2)*2))

print((1,)*2,type((1,)*2))

print((1)*2,type((1)*2))

字串

1. Python 中字串被定義為引號之間的字元集合。

2. Python 支援使用成對的 單引號 或 雙引號。

如果字串中需要出現單引號或雙引號,可以使用轉義符號\ 對字串中的符號進行轉義。

print(type('5'+'8'))

# str中的轉義字元位 \,可以對特殊字元進行轉義

print('let\'s go')

print("let's go")

python三引號允許一個字串跨多行,字串中可以包含換行符、製表符以及其他特殊字元。

# 三引號允許一個字串跨多行,字串中可以包含換行符、製表符以及其他特殊字元

para_str = """這是一個多行字串的例項

多行字串可以使用製表符TAB ( \t )。

也可以使用換行符 [ \n ]。

"""

print (para_str)

拼接

1. 類似於元組具有不可修改性

2. 從 0 開始 (和 C 一樣)

3. 切片通常寫成 start:end 這種形式,包括「start 索引」對應的元素,不包括「end 索引」對應的元素。

4. 索引值可正可負,正索引從 0 開始,從左往右;負索引從 -1 開始,從右往左。使用負數索引時,會從最後一個元素開始計數。最後一個元素的位置編號是 -1。

字串的常用內建方法有很多,比如capitalize()、lower()、upper()、swapcase()等等,這裡取幾個不常見的看一下。

1. ljust(width[, fillchar]) 返回一個原字串左對齊,並使用fillchar (預設空格)填充至長度width 的新字串。

2. rjust(width[, fillchar]) 返回一個原字串右對齊,並使用fillchar (預設空格)填充至長度width 的新字串。

'''

ljust(width[,fillchar])

rjust(width,[,fillchar])

返回一個原字串左/右對齊,用fillchar填充

'''

str4 = '1101'

print(str4.ljust(8,'0'))

print(str4.rjust(8,'0'))

1. lstrip([chars]) 截掉字串左邊的空格或指定字元。

2. rstrip([chars]) 刪除字串末尾的空格或指定字元。

3. strip([chars]) 在字串上執行lstrip() 和rstrip() 。

'''

lstrip([char])、rstrip([char])、strip([char])

刪除字串前後的空格或者指定字元

'''

str5 = ' I love Lsgroup '

print(str5.lstrip())

print(str5.rstrip())

print(str5.strip())

split(str="", num) 不帶引數預設是以空格為分隔符切片字串,如果num 引數有設定,則僅分隔num 個子字串,返回切片後的子字串拼接的列表。

# split分割儲存

u = 'www.baidu.com.cn'

u1,u2,u3 = u.split('.',2)

print(u1,'\n',u2,'\n',u3)