Python學習記 (7)元組 字典

2021-08-21 09:57:54 字數 4969 閱讀 9153

元組 tuple

元組的定義:元組是不可改變的序列,同list一樣,元組是可以存放任意型別的容器

元組的表示方法:用小括號() 括起來,單個元素括起來後加逗號(,)區分單個物件還是元組

建立空元組的字面值:t = ()  # t繫結空元組

建立非空元組

t = 200,

t = (20,)

t = (1, 2, 3)

t = 100, 200, 300

type(x) 函式用來返回 x的型別

元組的錯誤示例:

t = (20)  # t 繫結定整數,不是元組

x, y, z = 100, 200, 300  # 序列賦值等同於如下

x, y, z = (100, 200, 300)  # 序列賦值

x, y, z = [100, 200, 300]  # 序列賦值

x, y, z = "abc"            # 序列賦值

元組的構造(建立)函式 tuple

tuple() 生成乙個空的元組,等同於()

tuple(iterable)  用可迭代物件生成乙個元組

示例:t = tuple()

t = tuple([2,3,5,7])

t = tuple(range(10))

元組的運算:

+  加號用於元組的拼接操作

*  乘號 用於用原元組生成重複的元組

示例:t = (1, 2, 3) + (4, 5, 6)  #t=(1,2,3,4,5,6)

t = (1, 2) * 3  # t=(1,2,1,2,1,2)

t = (1, 2, 3)

t += (4, 5, 6)  # 等同於字串規則

t *= 2  

元組的比較運算:

> >= < <= == !=規則與列表的比較規則完全相同

示例(1, 2, 3) < (1, 3, 2)  # true

(1, 2, 3) != (1, 3, 2)  # true

(1, '二') < ('二', 1)

in / not in 運算子:

與列表的in / not in 規則完全相同

2 in (1, 2, 3, 4) # true

'2' not in (1, 2, 3, 4)  # true

索引和切片

索引:元組[整數]

切片:元組[整數:整數]

元組[整數:整數:整數]

規則同字串的切片規則

元組不支援索引賦值和切片賦值

練習:生成乙個 1~9的平方的元組,元組如下:(1, 4, 9, 16, ...., 81)

元組的方法:

t.index(v[, begin[, end]])  返回對應元素的索引下標,begin為開始索引,end為結束索引,v不存在時觸發valueerorr錯誤

t.count(x)  返回元組中對應元素的個數

序列的種類:

字串str, 列表list, 元組tuple,

位元組串bytes, 位元組陣列bytearray(後面再講)

能用於序列的函式總結:

len(x), max(x), min(x), sum(x), any(x),all(x)

str(obj)  將物件轉為字串

list(iterable) 將可迭代物件轉為列表

tuple(iterable) .........轉為元組

reversed(seq)  返回反向順序的可迭代物件

sorted(iteralbe, reverse=false)

字典 dict

什麼是字典

1. 字典是一種可變的容器,可以儲存任意型別的資料

2. 字典中的每個資料都是用"鍵"(key) 進行索引,而不象序列可以用下標來進行索引

3. 字典中的資料沒有先後順序關係,字典的儲存是無序的

4. 字典中的資料以鍵(key)-值(value)對形式進行對映儲存

5. 字典的鍵不能重複,且只能用不可變型別作為字典的鍵

字典的字面值表示方式:

{} 括起來,以冒號(:) 分隔鍵-值對, 各鍵-值對用逗號分隔開

建立空字典:d = {}  # 空字典

建立非空字典:

d =

d =

# 以下寫法會出現問題(因為鍵不能重複)

d =  

字典的構造(建立)函式 dict

dict()    # 建立空字典,等同於 {}

dict(iterable)  用可迭代物件初始化乙個字典

dict(**kwargs)  關鍵字傳參形式生成乙個字典

示例:d = dict()

d = dict([('name', 'tarena'), ('age', 15)])

d = dict(name='tarena', age=15)

字典的基本操作:

字典的鍵索引:用 運算子可以獲取和修改鍵所對應的值

語法:字典[鍵]

示例:d =

print('姓名:', d['name'], '年齡:', d['age'])

新增/修改字典的元素

字典[鍵] = 值

示例:d = {}

d['name'] = 'tarena'

鍵索引賦值說明:

當鍵不存在時,建立鍵並繫結鍵對應的值

當鍵存在時,修改鍵繫結的物件

刪除字典的元素

del 語句 可以用來刪除字典的鍵

語法:del 字典[鍵]

示例:d =

del d[2]

in 運算子(成員資格判斷運算子)

1. 可以用in運算子來判斷乙個鍵是否存在於字典中,如果存在則返回true,否則返回false

2. not in 與 in 相反

示例:d =

1 in d  # true

'二' in d  # false

3 not in d  # true

'one' in d  # false

字典的迭代訪問:字典是可迭代物件,字典只能對鍵進行迭代訪問

示例:d =

for k in d:

print(k, '對應的值是:', d[k])

練習:寫程式,實現以下要求:

1. 將如下資料形成乙個字典 seasons鍵值

1      '春季有1,2,3月'

2      '夏季有4,5,6月'

3      '秋季有7,8,9月'

4      '冬季有10,11,12月'

2. 讓使用者輸入乙個整數代表季度,列印這個季度的資訊。如果使用者輸入的資訊不在字典中,則提示'資訊不存在' 可以用於字典的內建(built-in)函式

len(x)  返回字典的鍵值對的個數

max(x)  返回字典的鍵的最大值

min(x)  返回字典的鍵的最小值

sum(x)  返回字典的鍵的和

any(x)  真值測試,如果字典中的乙個鍵為真,則結果為真

all(x)  真值測試,字典中所有鍵為真,則結果才為真字典的方法:

函式

說明

d代表字典物件

d.clear()

清空字典

d.pop(key)

移除鍵,同時返回此鍵所對應的值

d.copy()

返回字典d的副本,只複製一層(淺拷貝)

d.update(d2)

將字典 d2 合併到d中,如果鍵相同,則此鍵的值取d2的值作為新值

d.get(key, default)

返回鍵key所對應的值,如果沒有此鍵,則返回default

d.keys()

返回可迭代的 dict_keys 集合物件

d.values()

返回可迭代的 dict_values 值物件

d.items()

返回可迭代的 dict_items 物件

示例:d =

for k, v in d.items():

print("字典的鍵是:", k, '值是:', v)

練習:輸入一段字串,列印出這個字串中出現過的字元及字元出現過的次數如:輸入:  abcdabcaba

輸出:a: 4次

b: 3次

d: 1次

c: 2次

(不要求列印的順序)

字典推導式

字典推導式是用可迭代的物件依次生成字典的表示式

語法:注: 及其中的內容代表可省略

說明:1. 先從可迭代物件中取值

2. 用變數繫結

3. 用if 進行條件判斷,如果為真值則執行下一步

4. 執行'鍵表示式'和 '值表示式' 然後加入到新字典中

示例:生成乙個字典,鍵為1~9的整數,值為鍵的平方

d =

練習:有如下字串:l = ['tarena', 'china', 'beijing']生成如下字典:d = 答:d =

練習2:

no = [1001, 1002, 1005, 1008]

names = ['tom', 'jerry', 'spike', 'tyke']

用上面no列表中的資料作為鍵,用names中的資料作為值,生成相應的字典:

如:d =

方法1:

d =

方法2:

d =

字典推導式可以巢狀,語法同列表推導式

字典 vs 列表

1. 都是可變物件

2. 索引方式不同,列表用整數索引,字典用鍵索引

3. 字典的查詢速度可能會快於列表(重要)

4. 列表的儲存是有序的,字典的儲存是無序的列表 和字典 的內部儲存原理 列表,順序儲存 字典,對映儲存

練習:1. 輸入一些單詞和解釋,將單詞作為鍵,將解釋作為值,將這些資料輸入到字典中,當輸入空的單詞時結束輸入然後,輸入查詢的單詞,給出單詞對應的解釋

Python學習筆記 7 元組 字典 集合

1.元組簡介 2.字典簡介 3.遍歷字典 4.集合 元組基本介紹 字典的作用和列表類似,都是用來儲存物件的容器 列表儲存資料的效能好,但是查詢資料的效能差,字典正好與之相反 在字典中每乙個元素都有唯一的名字,通過這個唯一的名字可以找到指定的元素 這個唯一的名字我們稱之為key 通過過key可以快速查...

Python學習筆記 7 元組

python的元組與列表類似,不同之處在於元組的元素不能修改。元組使用小括號,列表使用方括號。元組建立很簡單,只需要在括號中新增元素,並使用逗號隔開即可。tuple1 定義乙個空元組 print tuple1 1 和 1 python既可以認為是int型別的數字1,也可以認為是乙個元素的元組。所以在...

Python自娛 7 元組

元組不可變資料型別 元組的元素可變 孫子 根據資料型別決定 元組是不可變的列表,唯讀列表,有索引,可查詢,可迴圈,可切片 元組只有乙個元素的時候要加逗號,否則type不是元組 空元組用tuple 表示 增刪改查tup tup1 tup2 元組不支援修改,可以連線組合方式增加 tup tup x de...