元組 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...