石家莊制作網(wǎng)站的公司效果最好的推廣軟件
文章目錄
- 一、元組
- 1.1、元組的初始化
- 1.2、元組的解包
- 1.3、元組的比較運(yùn)算
- 1.4、元組的其他操作
- 二、集合 set
- 2.1、集合的初始化
- 2.2、集合的常用操作
- 2.3、使用 for 循環(huán)遍歷集合
- 三、字典 map
- 3.1、字典的初始化
- 3.2、字典的常用操作
- 3.3、使用 for 循環(huán)遍歷字典
- 四、補(bǔ)充
一、元組
?元組跟列表類似,只是 不支持 動(dòng)態(tài)添加、刪除元素、修改元素。
1.1、元組的初始化
?元組 需要用 小括號(hào) 括起來,中間的元素用 逗號(hào)隔開。
?注意,如果 初始化 只包含 一個(gè)元素 的元組,需要在該元素 后添加逗號(hào)。
a = () # 初始化一個(gè)空元組
b = (1, 2) # 含有2個(gè)整數(shù)的元組
c = 6, "Python", 3.14 # 小括號(hào)可以省略,等價(jià)于(6, "Python", 3.14)
d = (5,) # 注意不能寫成(5),(5)表示整數(shù)5
e = 5, # 等價(jià)于(5,)print(a, b, c, d, e)
"""output
() (1, 2) (6, 'Python', 3.14) (5,) (5,)"""
1.2、元組的解包
t = 12345, 54321, "Hello!" # 初始化一個(gè)元組
x, y, z = t # 將元組解包,將元組內(nèi)的三個(gè)值按順序賦值給x、y、z
print(x, y, z)
"""output
12345 54321 Hello!"""
?所以,2. 判斷語句
中學(xué)習(xí)的 交換操作,本質(zhì)上是 元組的解包:
a, b = 3, 4 # 將元組(3, 4)解包,分別賦值給a、b
a, b = b, a # 將元組(b, a)解包,分別賦值給a、b
?同樣地,6. 函數(shù)
中 函數(shù)返回多個(gè)值,本質(zhì)上也是 返回了一個(gè)元組:
def calc(x, y):return x + y, x * y # 等價(jià)于 return (x + y, x * y)x, y = 3, 4
s, p = calc(x, y) # 將(x + y, x * y)解包,分別賦值給s、p
print(s, p)
1.3、元組的比較運(yùn)算
?元組和列表均支持 比較運(yùn)算符:==
、!=
、>
、<
、>=
、<=
等,按字典序 進(jìn)行比較。
1.4、元組的其他操作
?元組的 下標(biāo)訪問元素、循環(huán)遍歷、切片、加法和乘法運(yùn)算 等操作,都 與列表相同。
二、集合 set
?集合是 Python 中最常用的數(shù)據(jù)結(jié)構(gòu)之一,用來 存儲(chǔ)不同元素。注意,集合中的元素是 無序的。
2.1、集合的初始化
?創(chuàng)建集合 用 花括號(hào) 或 set()
函數(shù)。注意:創(chuàng)建 空集合 只能用 set(),不能用 {},因?yàn)?{} 創(chuàng)建的是 空字典,會(huì)在下一小節(jié)里介紹字典。
?集合常見的初始化方式:
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} # 會(huì)自動(dòng)去除重復(fù)元素
print(basket) # 重復(fù)的元素已經(jīng)去除了s = set() # 初始化一個(gè)空列表
print(s)a = [1, 2, 1, 3, 1]
b = set(a) # 將列表轉(zhuǎn)化成集合,一般是為了去重。
c = list(b) # 將集合轉(zhuǎn)化回列表
print(b, c)x = "abracadabra"
a = set(x) # 將字符串中的每個(gè)字符存到集合中
b = str(a) # 注意,這里并不能將集合轉(zhuǎn)化回原字符串,而是用格式化表示集合中的內(nèi)容
print(a, b)
"""output
{'apple', 'orange', 'banana', 'pear'}
set()
{1, 2, 3} [1, 2, 3]
{'r', 'a', 'c', 'b', 'd'} {'r', 'a', 'c', 'b', 'd'}"""
2.2、集合的常用操作
?假設(shè) a
表示一個(gè)集合。
函數(shù) | 功能 |
---|---|
len(a) | 返回集合中包含的元素?cái)?shù)量 |
a.add(x) | 在集合中添加一個(gè)元素 |
a.remove(x) | 刪除集合中的 x ,如果 x 不存在,則報(bào)異常 |
a.discard(x) | 刪除集合中的 x ,如果 x 不存在,則不進(jìn)行任何操作 |
x in a | 判斷 x 是否在 a 中 |
x not in a | 判斷 x 是否不在 a 中 |
a = {1, 2, 3}print(len(a)) # 輸出3a.add(4)
print(a) # 輸出 {1, 2, 3, 4},注意集合中的元素是無序的。a.remove(2)
print(a) # 輸出 {1, 3, 4}# a.remove(5) # 因?yàn)?不存在,所以會(huì)報(bào)異常
a.discard(5) # 因?yàn)?不存在,所以不進(jìn)行任何操作
print(a) # {1, 3, 4}
2.3、使用 for 循環(huán)遍歷集合
?類似于列表,集合也可以用 for ... in ...
的形式遍歷。例如:
a = {1, 2, 3}for x in a: # 循環(huán)遍歷整個(gè)集合print(x, end=' ')
三、字典 map
?字典 是 Python 中最常用的數(shù)據(jù)結(jié)構(gòu)之一,用來 存儲(chǔ) 映射關(guān)系。注意,字典中的元素是 無序的。
?不同于列表,字典 是 以 key 進(jìn)行索引 的,可以將 每個(gè) key 映射到某個(gè) value。key 可以是 任何不可變類型,常用 可以作為 key的類型 有 數(shù)字 和 字符串。列表 因?yàn)槭?可變的,所以 不能作為 key。value 可以是 任意類型。
3.1、字典的初始化
?創(chuàng)建字典 用 花括號(hào) 或 dict()
函數(shù)。
tel = {'jack': 4098, 'sape': 4139} # 創(chuàng)建一個(gè)字典
print(tel) # 輸出 {'jack': 4098, 'sape': 4139}a = dict() # 創(chuàng)建一個(gè)空字典
a[123] = "abc" # 在字典中插入一個(gè)key-value對(duì)
a[456] = "def" # 在字典中插入一個(gè)key-value對(duì)
print(a) # 輸出 {123: 'abc', 456: 'def'}b = list(a) # 將字典的關(guān)鍵字轉(zhuǎn)化成列表
print(b) # 輸出[123, 456]
3.2、字典的常用操作
?假設(shè) a
表示一個(gè)字典。
函數(shù) | 功能 |
---|---|
len(a) | 返回字典中的元素對(duì)數(shù) |
a[x] | 獲取關(guān)鍵字 x 對(duì)應(yīng)的值,如果 x 不存在,會(huì)報(bào)異常 |
a.get(x) | 獲取關(guān)鍵字 x 對(duì)應(yīng)的值,如果 x 不存在,會(huì)返回 None ,不會(huì)報(bào)異常 |
a.get(x, y) | 獲取關(guān)鍵字 x 對(duì)應(yīng)的值,如果 x 不存在,會(huì)返回默認(rèn)值 y ,不會(huì)報(bào)異常 |
a[x] = y | 在字典中插入一對(duì)元素,如果關(guān)鍵字 x 已存在,則將它之前映射的值覆蓋掉 |
del a[x] | 刪除關(guān)鍵字 x 對(duì)應(yīng)的元素對(duì),如果 x 不存在,會(huì)報(bào)異常 |
x in a | 檢查字典中是否存在關(guān)鍵字 x |
x not in a | 檢查字典中是否不存在關(guān)鍵字 x |
a.keys() | 返回字典的所有 key |
a.values() | 返回字典的所有 value |
a.items() | 返回字典的所有由 key 和 value 組成的元組 |
a = {'abc': 1, 'def': 2, 'python': 3} # 初始化一個(gè)字典print(len(a)) # 輸出3
print(a['def']) # 輸出2
print(a.get('def')) # 輸出2
print(a.get('xyz', 5)) # 因?yàn)?#39;xyz'不存在,所以輸出默認(rèn)值5a['hello'] = 4 # 插入一對(duì)元素 'hello' -> 4
print(a) # 輸出{'abc': 1, 'def': 2, 'python': 3, 'hello': 4}a['def'] = 5 # 更新'def'映射的值
print(a['def']) # 輸出5del a['python'] # 刪除關(guān)鍵字'python'
print(a) # 輸出{'abc': 1, 'def': 5, 'hello': 4}print('hello' in a) # 輸出True
print(a.keys()) # 輸出dict_keys(['abc', 'def', 'hello'])
print(a.values()) # 輸出dict_values([1, 5, 4])
print(a.items()) # 輸出dict_items([('abc', 1), ('def', 5), ('hello', 4)])
3.3、使用 for 循環(huán)遍歷字典
?類似于列表,字典也可以用 for ... in ...
的形式遍歷。例如:
a = {'abc': 1, 'def': 2, 'python': 3} # 初始化一個(gè)字典for k in a: # 遍歷keyprint(k, end=' ')
print() # 輸出回車for k in a.keys(): # 遍歷keyprint(k, end=' ')
print() # 輸出回車for v in a.values(): # 遍歷valueprint(v, end=' ')
print() # 輸出回車for k, v in a.items(): # 遍歷key-value對(duì)print("(%s, %d) " % (k, v), end=' ')
print() # 輸出回車
"""output
abc def python
abc def python
1 2 3
(abc, 1) (def, 2) (python, 3) """
四、補(bǔ)充
map()
也可以用for ... in ...
的形式遍歷。例如:for x in map(int, input().split())
可以遍歷一行內(nèi) 用空格隔開 的每個(gè)整數(shù)。map()
函數(shù)的 返回值 也可以 直接轉(zhuǎn)化成set()
,例如:set(map(int, input().split()))
可以將一行 用空格隔開 的整數(shù)存到set()
中。sorted()
函數(shù)可以將 列表、元組、集合、字典 排序,并返回一個(gè) 新列表。如果 對(duì) 字典 排序,則返回字典所有 key 排序 后的 列表。