1. 列表的內建方法
1.1 優先掌握的內建方法
1.1.1 強制型別轉換
可以將可迭代型別轉換為列表型別
print(list('messi')) # ['m', 'e', 's', 's', 'i'] print(list((1, 2, 3))) # [1, 2, 3] print(list({4, 5, 6})) # [4, 5, 6]
list方法在強制轉換字典的時候預設轉換出來的是字典的鍵
print(list({'name': 'messi', 'goals': 91})) # ['name', 'goals']
強調:列表轉換成字串之後無法再重新轉回列表
1.1.2 索引取值
正向索引/負向索引
1.1.3 切片
與字串切片方法一樣
列表[起始索引:終止索引:步長]
a = ['messi', 'ronaldo', 'neymar', 'kylian', 'haaland'] print(a[0:3]) # ['messi', 'ronaldo', 'neymar'] print(a[0:3:2]) # ['messi', 'neymar'] # 將列表順序翻轉 print(a[::-1]) # ['haaland', 'kylian', 'neymar', 'ronaldo', 'messi']
1.1.4 計算長度
len
1.1.5 成員運算
in / not in
判斷某個元素是否在當前列表中
1.1.6 向列表中新增元素
方式一:新增在列表結尾
a = [1, 2, 3] a.append(4) print(a) # [1, 2, 3, 4]
方式二:插入到指定的索引位置
a = [1, 2, 3] a.insert(0, 'messi') print(a) # ['messi', 1, 2, 3]
方式三:將兩個列表整合到一起(擴充套件列表)
# for迴圈將兩個列表整合到一起 a = [1, 2, 3] b = [4, 5, 6] for i in b: a.append(i) print(a) # [1, 2, 3, 4, 5, 6]
# extend方法將兩個列表整合到一起 a = ['messi', 'neymar', 'ronaldo'] b = [1, 2, 3] a.extend(b) print(a) # ['messi', 'neymar', 'ronaldo', 1, 2, 3]
1.1.7 刪除列表中的元素
方式一:按照指定的值刪除指定的元素remove
a = ['messi', 'neymar', 'ronaldo', 'kylian', 'haaland'] print(a.remove('messi')) # None 沒有返回值 print(a) # ['neymar', 'ronaldo', 'kylian', 'haaland']
方式二:彈出指定元素pop
a = [1, 2, 3, 4, 5, 6] # 預設彈出最後一個元素 print(a.pop()) # 6 有返回值 print(a) # [1, 2, 3, 4, 5] # 彈出指定索引對應的元素 print(a.pop(2)) # 3 有返回值 print(a) # [1, 2, 4, 5]
方式三:刪除指定索引對應的元素del
a = [1, 2, 3, 4, 5, 6] del a[2] # 不能返回,使用print會報錯 print(a) # [1, 2, 4, 5, 6]
方式四:將列表清空clear
a = [1, 2, 3] a.clear() print(a) # []
1.1.8 翻轉元素,作用在原列表reverse
a = [1, 2, 3, 4, 5, 6]
# 使用通用方法翻轉
print(a[::-1]) # [6, 5, 4, 3, 2, 1]
print(a) # [1, 2, 3, 4, 5, 6] 原列表沒有得到改變
# 使用reverse方法翻轉
print(a.reverse()) # None 沒有返回值
print(a) # [6, 5, 4, 3, 2, 1] 原列表得到改變
1.1.9 對列表中的元素進行排序,作用在原列表sort
a = [2, 4, 5, 9, 1, 3, 8, 6, 7] # 預設的排序方式是正序 print(a.sort()) # None 沒有返回值 print(a) # [1, 2, 3, 4, 5, 6, 7, 8, 9] # 給sort加上引數reverse b = [2, 4, 5, 9, 1, 3, 8, 6, 7] b.sort(reverse=True) print(b) # [9, 8, 7, 6, 5, 4, 3, 2, 1] 列表先正序,後翻轉 c = [2, 4, 5, 9, 1, 3, 8, 6, 7] c.sort(reverse=False) print(c) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 補充方法:sorted(列表),把列表當引數而不是呼叫
d = [2, 4, 5, 9, 1, 3, 8, 6, 7]
print(sorted(d)) # [1, 2, 3, 4, 5, 6, 7, 8, 9] 有返回值
print(d) # [2, 4, 5, 9, 1, 3, 8, 6, 7]
總結:
sort 使用方法:列表.sort() 沒有返回值 作用在原列表
sorted 使用方法:sorted(列表) 有返回值 不會作用在原列表
1.1.10 列表遍歷迴圈
for迴圈
while迴圈
2. 元組的內建方法
回顧:
一個元素的元組要加,逗號
不加逗號變成了元素原本的型別
在定義字串或者其它資料型別時加了,逗號就成了元組
2.1 強制型別轉換
可以將可迭代型別轉換成元組
2.2 索引取值
2.3 切片
[起始索引:結束索引:步長]
a = (1, 2, 3, 4, 5, 6)
print(a[1:3]) # (2, 3)
print(a[0:5:2]) # (1, 3, 5)
print(a[::-1]) # (6, 5, 4, 3, 2, 1)
sort方法是列表的排序方法,不是元組的
2.4 計算長度
len
2.5 成員運算
in / not in
2.6 遍歷
for迴圈
while迴圈
2.7 元組拼接
a = (1, 2, 3)
b = (4, 5, 6)
# 方式一:元組.__add__(元組) 返回一個新的元組,不會作用在原來的元組
print(a.__add__((666,))) # (1, 2, 3, 666)
print(a) # (1, 2, 3)
# 方式二:使用 + 進行拼接
print(a + b) # (1, 2, 3, 4, 5, 6)
2.8 元組的重複
元組*數字 將當前元組的所有元素重複指定次數併產生新的元組
a = ('j', 'q', 'k')
print(a * 3) # ('j', 'q', 'k', 'j', 'q', 'k', 'j', 'q', 'k')
3. 布林型別的內建方法
強制型別轉換 bool()
在python中為假的情況:
1. 布林值False
2. 數字0
3. 空的其它型別
print(bool(False), type(bool(False))) # False <class 'bool'>
print(bool(0), type(bool(0))) # False <class 'bool'>
print(bool('')) # False
print(bool([])) # False
print(bool(())) # False
print(bool({})) # False
其它情況均為真:
1. 布林值True
2. 數字1
3. 有值的其它型別,空格也算字串也算有值
print(bool(True)) # True
print(bool(1)) # True
print(bool(['a'])) # True
print(bool(' ')) # True
4. 字典的內建方法
字典中的鍵必須是不可變的,通常使用字串、數字、布林值作為鍵
字典中的值可以是任意型別,包括數字、字串、列表、字典等
4.1 取值
# (1)字典[key]
# 這種方法取字典中沒有的鍵會報錯
a = {'name': 'kylian', 'id': 9, 'country': 'France', True: 'psg'}
print(a['id']) # 9
print(a[True]) # psg
# (2)字典.get(鍵)
print(a.get('name')) # kylian
print(a.get('hobby')) # 如果字典中沒有當前的鍵,返回的就是None
print(a.get('hobby', 'goat')) # goat 沒有鍵取不到值可以指定預設值
4.2 計算長度
len 計算字典中的鍵值對個數
4.3 成員運算
判斷某個鍵是否在字典中,而不是某個值
print('name' in a) # True
print('kylian' in a) # False
4.4 增加元素
字典的特性:有則新增,無則修改
(1)方式一:字典[key] = value
a = {'name': 'kylian', 'id': 9, 'country': 'France'}
a['club1'] = 'psg'
print(a) # {'name': 'kylian', 'id': 9, 'country': 'France', 'club1': 'psg'}
(2)方式二:字典.update({key:value})
a = {'one': 1, 'two': 2, 'three': 3}
b = {'four': 4, 'five': 5, 'six': 6}
# 遍歷字典b,新增到字典a中
for i in b:
a[i] = b[i]
print(a) # {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6}
(3)方式三:字典.update(key=value)
以上使用=的方式i是一個固定的值,以下使用鍵值對的形式i可隨遍歷而改變
(4)方式四:字典.update(字典)
m = {'a': 1, 'b': 2, 'c': 3}
n = {'d': 4, 'e': 5, 'f': 6}
m.update(n)
print(m) # {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
相比於方式二for迴圈遍歷增加一個字典所有元素,方式四程式碼更簡潔
(5)方式五:setdefault(key, value)
向字典中設定當前鍵對應的預設值
setdefault(key,value)方法用於獲取指定鍵的值;如果鍵不存在,則返回預設值,並在字典中新增新鍵值對;如果鍵存在,則返回鍵原本對應的值
4.5 刪除元素
info = {'name': 'kylian', 'id': 9, 'club': 'psg', 'goal': 91}
# 方式一:del字典[key] 按照鍵刪除字典對應的鍵值對
del info['club'] # 沒有返回值,不能用變數接收
print(info) # {'name': 'kylian', 'id': 9, 'goal': 91}
# 方式二:字典.pop(key) 按照鍵刪除字典對應的鍵值對彈出
res = info.pop('id')
print(res) # 9 相比於方式一有返回值,且可以用變數接收
print(info) # {'name': 'kylian', 'goal': 91}
# 方式三:清空字典
info.clear()
print(info) # {}
# 方式四:彈出最後一個位置的鍵值對
info = {'name': 'kylian', 'id': 9, 'club': 'psg', 'goal': 91}
res = info.popitem()
print(res) # ('goal', 91)
print(info) # {'name': 'kylian', 'id': 9, 'club': 'psg'}
4.6 取出字典中所有的鍵、所有的值、所有的鍵值對
info = {'a': '1', 'b': 2, 'c': 3}
# (1)獲取字典中所有的鍵
print(info.keys())
# dict_keys(['a', 'b', 'c']) 可以看成是列表,可以用for迴圈取出
print(type(info.keys())) # <class 'dict_keys'>
# (2)獲取字典中所有的值
print(info.values())
# dict_values(['1', 2, 3]) 可以看成是列表
# (3)獲取字典中所有的鍵值對
print(info.items())
# dict_items([('a', '1'), ('b', 2), ('c', 3)]) 可以看成是列表巢狀元組
for k, v in info.items():
print(k) # a b c
print(v) # 1 2 3
5. 集合的內建方法
集合的特點是無序且去重
5.1 強制型別轉換
print(set('messi'))
# {'e', 'm', 's', 'i'}
print(set([1, 2, 3]))
# {1, 2, 3}
print(set(('j', 'q', 'k')))
# {'q', 'k', 'j'}
print(set({'a': 11, 'b': 22, 'c': 33}))
# {'c', 'a', 'b'}
5.2 新增元素
a = {1, 2, 3, 4, 5}
# 新增單個元素
print(a.add(6)) # None
print(a) # {1, 2, 3, 4, 5, 6}
# 一次新增多個元素
a.update((11, 22, 33)) # 只能是可迭代型別
print(a) # {1, 2, 3, 4, 5, 6, 11, 22, 33}
5.3 刪除元素
# 方式二:pop
# 集合的pop預設彈出第一個元素,而列表的pop預設彈出最後一個元素
b = {'messi', 'ronaldo', 'neymar', 'kylian'}
print(b.pop()) # messi 索引為0的位置
print(b) # {'ronaldo', 'neymar', 'kylian'}
5.4 其它方法
計算長度len
遍歷迴圈for
成員運算 in / not in