Python基礎之容器類型的公共方法,包括 Python內置函數,切片,運算符,完整的for迴圈。其中,Python內置函數包括 內置函數羅列,內置函數使用;切片僅 包含切片的定義和使用;運算符包括 運算符羅列,運算符的使用;完整的for迴圈 包括 完整的for迴圈語法,for迴圈演示,break打... ...
公共方法:就是列表,元組,字典,字元串能共同使用的方法;
Python內置函數
內置函數羅列
函數 | 描述 | 備註 |
---|---|---|
len(item) | 計算容器中的元素個數 | |
del(item) | 刪除變數 | del有兩種方法 |
max(item) | 返回容器中元素最大值 | 如果是字典,只針對key比較 |
min(item) | 返回容器中元素最小值 | 如果是字典,只針對key比較 |
cmp(item1,item2) | 比較兩個值,-1小於/0等於/1大於 | python3取消了cmp函數 |
註意:字元串具有以下規則:"0"<"A"<"a"
內置函數使用
len() 計算容器中元素的個數;
del 用關鍵字和函數兩種方式,兩種方式結果一樣;del 變數;del(變數);
list = [1, 2,4]
del list[1]
list
[1, 4]
del(list[0])
list
[4]
del(list)
# 刪除列表後,會報錯,未定義
max和min函數
test_str = "qeqfeijovodmbahidkolmc"
max(test_str)
'v'
min(test_str)
'a'
# 如果是字典,只針對key比較
test_list = [3, 9, 0, 1]
max(test_list)
9
min(test_list)
tset_dict = {"a": "3", "b": "1", "c": "2"}
max(tset_dict)
'c'
min(tset_dict)
'a'
python3中取消了cmp比較運算符,但我們可以直接通過比較運算符<>進行比較;
數字可以比較,字元串可以比較,元組,列表可以比較大小,但字典不能比較大小
切片
- 切片使用索引值來限定範圍,從一個大的字元串中切出小的字元串;
- 字元串,列表,元組可以進行切片,因為它們有序;但字典不能進行切片,因為字典無序;
切片示例如下:
t_list = [3,1,2,5,7]
t_list[0:3]
[3, 1, 2]
t_tuple = (1,2,3,4,5)
t_tuple[0:3]
(1, 2, 3)
運算符
運算符羅列
運算符 | Python表達式 | 結果 | 描述 | 支持的數據類型 |
---|---|---|---|---|
+ | [1,2]+[3,4] | [1,2,3,4] | 合併 | 字元串,列表,元組 |
* | ["hi"]*4 | ["hi","hi","hi","hi"] | 重覆 | 字元串,列表,元組 |
in | 3 in (1,2,3) | True | 元素是否存在 | 字元串,列表,元組,字典 |
not in | 4 not in(1,2,3) | True | 元素是否不存在 | 字元串,列表,元組,字典 |
> >= == < <= | (1,2,3)<(2,2,3) | TRue | 元素比較 | 字元串,列表,元組 |
- in在對字典操作時,判斷的是字典的鍵
- in和not in被稱為成員運算符
運算符的使用
*可以用於列表元組,但不能用於字典,因為字典的key必須是惟一的;
[1,2]*5
[1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
(1,2)*5
(1, 2, 1, 2, 1, 2, 1, 2, 1, 2)
+運算符表示合併,可以用於列表,元組,字元串合併;不同類型之間不能合併,比如元組與列表;
"hello" + "world"
'helloworld'
(1,2) + (3,4)
(1, 2, 3, 4)
[1,2] + [3,4]
[1, 2, 3, 4]
註意,當我們用+合併列表時,是生成一個新列表
append和extend方法的區別:extend會將一個指定的列表參數合併到列表中,即分散的加入;而append會將一個指定的列表當成一個整體的元素合併到列表中;
用append和extend是在原列表上擴展元素。
in和not in的使用
- 包含和不包含;
- 可以用於字元串,列表,元組,字典;但應註意在字典中,in只針對於字典的key做檢查。
in和not in的使用如下:
"a" in "asdfg"
True
"a" not in "asdfg"
False
2 in (1,2,3,4)
True
2 not in [1,2,3,4]
False
"name" in {"name": "zhangsan"}
True
"zhangsan" in {"name": "zhangsan"}
False
完整的for迴圈
完整的for迴圈語法
for xx in 集合:
xxx
else:
xxx
這就是完整的for迴圈的語法結構;
- 只要for迴圈不被break打斷,else中的代碼就會在for迴圈結束後執行;
- 如果for迴圈被打斷,就會直接執行for迴圈外部的後續代碼
完整的for迴圈演示
students = [{"name": "韓信"}, {"name": "李白"}, {"name": "劉備"}]
for stu in students:
print(stu)
else:
print("我是for迴圈遍歷結束後的else語句")
print("for迴圈結束了")
# {'name': '韓信'}
# {'name': '李白'}
# {'name': '劉備'}
# 我是for迴圈遍歷結束後的else語句
# for迴圈結束了
break打斷for迴圈演示
students = [{"name": "韓信"}, {"name": "李白"}, {"name": "劉備"}]
for stu in students:
print(stu)
if stu["name"] == "李白":
print("李白,你媽媽喊你回家吃飯了")
break
else:
print("我是for迴圈遍歷結束後的else語句")
print("for迴圈結束了")
# {'name': '韓信'}
# {'name': '李白'}
# 李白,你媽媽喊你回家吃飯了
# for迴圈結束了
for else的應用場景
- 在迭代遍歷嵌套的數據類型時,例如一個列表包含了多個字典
需求:需要判斷某一個字典中 是否存在指定的值
如果存在,提示並且退出迴圈
如果不存在,在迴圈整體結束後,希望得到一個統一的提示
找到了的情況
students = [{"name": "韓信"}, {"name": "李白"}, {"name": "劉備"}]
find_stu = "李白"
for stu in students:
print("正在查找...", stu["name"])
if stu["name"] == find_stu:
print("%s,你媽媽喊你回家吃飯了" % find_stu)
break
else:
print("不好意思,你家%s沒在這個班" % find_stu)
print("for迴圈結束了")
# 正在查找... 韓信
# 正在查找... 李白
# 李白,你媽媽喊你回家吃飯了
# for迴圈結束了
沒找到的情況
students = [{"name": "韓信"}, {"name": "李白"}, {"name": "劉備"}]
find_stu = "張飛"
for stu in students:
print("正在查找...", stu["name"])
if stu["name"] == find_stu:
print("%s,你媽媽喊你回家吃飯了" % find_stu)
break
else:
print("不好意思,你家%s沒在這個班" % find_stu)
print("for迴圈結束了")
# 正在查找... 韓信
# 正在查找... 李白
# 正在查找... 劉備
# 不好意思,你家張飛沒在這個班
# for迴圈結束了