文章目錄
- 元組
- 一、元組的創建與洗掉
- 1.1元組的創建
- 1.2元組的洗掉
- 二、元組與串列的區別
- 三、序列解包
- 三、生成器運算式
- 字典
- 一、字典
- 二、字典的創建與洗掉
- 2.1字典的創建
- 2.2 字典的洗掉
- 三、字典元素的讀取
- 三、字典元素的添加與修改
- 3.1字典元素的添加
- 蠟筆小新也忒闊愛了吧~,嘿嘿嘿,,,
第四篇博客來啦~
元組
一、元組的創建與洗掉
元組可以看做輕量級串列,屬于不可變序列
1.1元組的創建
- 使用“=”將一個元組賦值給變數,即可創建一個元組變數
>>>a_tuple=('a','b','z','example')
>>>x=() #空元組
注意:若要創建一個只包含一個元素的元組,需要在元素后面加一個逗號“,”,創建包含多個元素的元組沒有這個限制,
>>>a=3, #有逗號時可以沒有括號
>>>a #(1)
>>>a=1,2
>>>a #(2)
結果為:
(3,) #(1)
(1,2) #(2)
- 使用tuple()函式將串列、字串、字典、集合、map物件等其他型別可迭代物件轉換為元組
>>>print(tuple('abcdefg')) #(1)
>>>s=tuple() #空元組
結果為:
('a','b','c','d','e','f','g')
1.2元組的洗掉
對元組而言,只能使用del()命令洗掉整個元組物件,不能洗掉元組中的部分元素
del a
二、元組與串列的區別
區別:
- 串列屬于可變序列,可以隨意的修改串列中的元素值以及增、刪串列元素,元組屬于
不可變序列,元組中的資料一旦定義就不允許通過任何方式更改 - 元組沒有append()、extend()和insert()、remove()等方法
- 元組不支持使用del()命令洗掉元組中的部分元素,只能使用del命令洗掉整個元組物件
- 元組和串列均支持切片操作,但元組只能通過切片操作來訪問串列中的元素,
不能用于修改元組中元素的值
元組的優點 - 元組的訪問個處理速度比串列快
- 元組對不需要改變的資料進行“寫保護”將使得代碼更加安全
- 元組可以作為字典的鍵,而串列永遠都不能作為字典鍵使用,因為串列是可變序列
注意:若元組中包含串列、字典、集合或其他可變型別的物件,這樣的元組不能當做字典的鍵或集合的元素三、序列解包
- 使用序列解包對多個變數同時進行賦值
>>>x,y,z=1,2,3 >>>v_tuple(False,3.5,'exp') >>>(x,y,z)=v_tuple >>>x,y,z=v_tuple #與上一行代碼等價- 序列解包可以用于串列和字典,對字典使用時,默認對字典進行“鍵”操作,若要對“鍵:值對”操作,需使用items()方法說明,若對“值”操作,需使用values()方法明確指出
>>>a=[1,2,3] >>>b,c,d=a #用于串列 >>>s={'a':1,'b':2,'c':3} >>>b,c,d=s.items() #對“鍵:值對”操作,使用items()方法說明 >>>b,c,d=s >>>b,c,d=s.values() #對“值”操作,用values()方法明確指出 >>>a,d=b,a #交換兩個變數的值、- 使用序列解包可以同時遍歷多個序列
結果為:>>>keys=['a','b','c','d'] >>>values=[1,2,3,4] >>>for k,v in zip(keys,values): >>>print(k,v)a 1 b 2 c 3 d 4- 在呼叫函式式,在實參前面加上一兩個(*)也可以進行序列解包
三、生成器運算式
生成器運算式的結果是一個生成器物件(具有惰性求值的特點)
使用生成器物件的元素時,可以根據其需要將其轉化為串列或元組,可以使用內置函式next()、生成器物件的_ next _()方法進行遍歷,或者直接將其作為迭代器物件使用
注:生成器物件的元素只能使用一次,并且只能從前往后順序訪問,
>>>g=((i+2)**2 for i in rangea(10)) #(1)
>>>tuple(g) #轉化為元組 #(2)
>>>tuple(g) #元素已經遍歷結束 (3)
>>>g=((i+2)**2 for i in rangea(10)) #重新創建生成器物件
>>>g._ _next_ _() #(4)
>>>next(g) #(5)
>>>next(g) #(6)
結果為:
<generator object<genexpr>at 0x02B15C60> #(1)
(4,9,16,25,36,49,64,81,100,121) #(2)
() #(3)
4 #(4)
9 #(5)
16 #(6)
**這周上的東西有點多啊!“干飯人”繼續狼吞虎咽中····o(╥﹏╥)o **

字典
一、字典
- 字典是包含若干“鍵:值”對的
無序可變序列,字典中的每個元素包含“鍵”和“值”兩部分 - 定義字典時,每個元素的鍵和值用
冒號分隔,元素之間用逗號分隔,所有的元素放在一對大括號“{}”中 - 字典中的鍵可以為任意不可變資料,比如整數、實數、復數、字串、元組等
- 字典中的“鍵”是唯一的,
不允許重復,“值”是可以重復的 - globals()回傳包含當前作用域內所有全域變數和值的字典
- locals()回傳包含當前作用域內所有區域變數和值的字典
二、字典的創建與洗掉
2.1字典的創建
- 使用=將一個字典賦值給一個變數
>>> a_dict = {'server': 'db.diveintopython3.org', 'database': 'mysql'}
>>> a_dict
結果為:
{'database': 'mysql', 'server': 'db.diveintopython3.org'}
- 使用內置函式dict()通過已有資料快速創建字典
>>> keys = ['a', 'b', 'c', 'd']
>>> values = [1, 2, 3, 4]
>>> dictionary = dict(zip(keys, values))
>>> dictionary
結果為:
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
- 或使用dict()根據“鍵:值”對來創建字典
>>> d = dict(name='Dong', age=37)
- 以給定內容為“鍵”,創建“值”為空的字典
>>> adict = dict.fromkeys(['name', 'age', 'sex'])
2.2 字典的洗掉
- 可以使用
del()命令洗掉整個字典,也可以使用del()命令洗掉字典中的指定元素
>>>dic={'sc':'cd','beijing':'beijing'}
>>>del dic['beijing']
>>>del
{'sc':'cd'}
- 使用字典物件的
clear()方法來洗掉字典中的所有元素
>>>dic.clear()
>>>dic
{}
- 使用字典物件的
pop()方法洗掉并回傳指定鍵的元素
>>>dic.pop('sc')
'cd'
- 使用字典物件的
popitem()方法洗掉并回傳字典中的一個元素
>>>dic.popitem()
('beijing','beijing')
終于快寫完了,沖鴨,勝利就在前方!!!(沒找到想要的圖片,只能從視頻上截取了😅)
這眉毛也太闊愛了吧!

三、字典元素的讀取
- 以鍵作為下標可以讀取字典元素,若鍵不存在則拋出例外
>>> aDict = {'name':'Dong', 'sex':'male', 'age':37}
>>> aDict['name'] #(1)
>>>aDict['tel'] #(2)
結果為:
'Dong' #(1)
KeyError:'tel' #(2)指定“鍵”不存在,拋出例外
- 使用字典物件的
get()方法獲取指定鍵對應的值,并且可以在"鍵"不存在的時候回傳指定值,如果不指定,則默認回傳None
>>>print(aDict.get('address')) #(1) 未指定
>>>print(aDict.get('address','SDTBT')) #(2)指定回傳值‘SDTBT’
None #(1)
SDTBT #(2)
- 使用字典物件的
items()方法可以回傳字典的“鍵、值”對;使用字典物件的keys()方法可以回傳字典的“鍵”;使用字典物件的values()方法可以回傳字典的“值”
>>> aDict={'name':'Dong', 'sex':'male', 'age':37}
>>> for item in aDict.items(): #輸出字典中所有元素
print(item) #(1)
>>> for key in aDict: #不加特殊說明,默認輸出鍵
print(key) #(2)
>>> aDict.keys() #回傳所有鍵(3)
>>> aDict.values() #回傳所有值(4)
('age', 37)
('name', 'Dong')
('sex', 'male') #(1)
age
name
sex #(2)
dict_keys(['name', 'sex', 'age']) #(3)
dict_values(['Dong', 'male', 37]) #(4)
三、字典元素的添加與修改
3.1字典元素的添加
- 當以指定鍵為下標為字典賦值時:
(1)若鍵存在,則可以修改該“鍵”的值
>>> aDict['age'] = 38 #修改元素值
>>> aDict
結果為:
{'age': 38, 'name': 'Dong', 'sex': 'male'}
(2)若不存在,則表示添加一個“鍵、值”對
>>> aDict['address'] = 'SDIBT' #增加新元素
>>> aDict
結果為:
{'age': 38, 'address': 'SDIBT', 'name': 'Dong', 'sex': 'male'}
- 使用字典物件的update()方法將另一個字典的鍵、值對添加到當前字典物件,
hhhhhhh~,寫完啦!撒花撒花??ヽ(°▽°)ノ?
蠟筆小新也忒闊愛了吧~,嘿嘿嘿,,,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/271348.html
標籤:python
上一篇:python實作labelme_json_to_dataset資料集標簽批量提取
下一篇:Python精簡入門學習(十)
