🌈?個人主頁:十二月的貓-CSDN博客
🔥?系列專欄:?🏀《Python/PyTorch極簡課》_十二月的貓的博客-CSDN博客💪🏻?十二月的寒冬阻擋不了春天的腳步,十二點的黑夜遮蔽不住黎明的曙光?
目錄
1. 前言
2. 字典
2.1 字典的創建
2.1.1 大括號+直接賦值
2.1.2?大括號+字典推導式
2.1.3?dict+關鍵字參數
2.1.4?dict+元組列表
2.1.5?dict+zip方法
2.1.6 dict+fromkeys方法
2.2 字典的訪問
2.2.1?使用鍵訪問字典元素
2.2.2?使用?get()?方法訪問字典元素
2.2.3?元組列表則用元組訪問的方法訪問
2.3 字典的修改
2.3.1?直接修改字典元素
2.3.2?使用?update()?方法修改字典
2.3.3?刪除字典元素
2.3.4?清空字典
2.4 字典方法
2.4.1?keys()
2.4.2?values()
2.4.3?update()
2.4.4?fromkeys()
2.4.5?setdefault()
2.4.6?clear()
2.4.6?copy()
2.4.7?items()
2.4.8?get()
3. 完整示例
4. 總結
1. 前言
- 👑《零基礎入門PyTorch/Python》專欄持續更新中,未來最少文章數量為60篇。由于專欄剛剛建立,促銷價為9.9。后續將慢慢恢復原價至99.9🍉【在校大學生】評論區留言并私信我免費訂閱
- 👑《零基礎入門PyTorch/Python》專欄主要針對零基礎入門的小伙伴。不需要Python基礎,不需要深度學習基礎,只要你愿意學,這一個專欄將真正讓你做到零基礎入門。
- 🔥每例項目都包括理論講解、數據集、源代碼。
正在更新中💹💹
🚨項目運行環境:
- 平臺:Window11
- 語言環境:Python3.8
- 運行環境1:PyCharm 2021.3
- 運行環境2:Jupyter Notebook 7.3.2
- 框架:PyTorch 2.5.1(CUDA11.8)
2. 字典
????????(Dictionary)是一種內置的數據結構,以鍵值對(key-value pair)的形式存儲數據。在許多Python或PyTorch中常常被使用,例如nn.Sequential等等。因此貓貓有必要寫一篇文章,詳細講講字典的生命全周期。
2.1 字典的創建
????????字典創建的方法本質上就兩種:大括號法、dict方法
2.1.1 大括號+直接賦值
這是最常見和直接的方式,直接使用 {}
包裹鍵值對:
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
2.1.2?大括號+字典推導式
字典推導式允許你根據某種條件或從其他可迭代對象創建字典:
my_dict = {x: x**2 for x in range(5)}
# 輸出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
2.1.3?dict+關鍵字參數
你可以使用 dict()
函數來創建字典,通過關鍵字參數來初始化:
my_dict = dict(name='Alice', age=25, city='New York')
2.1.4?dict+元組列表
你可以使用 dict()
函數來創建字典,通過元組列表來初始化:
my_dict = dict([('name', 'Alice'), ('age', 25), ('city', 'New York')])
2.1.5?dict+zip方法
zip()
可以將兩個可迭代對象組合成一個字典,前一個對象作為鍵,后一個對象作為值:
示例一:
keys = ['name', 'age', 'city']
values = ['Alice', 25, 'New York']
my_dict = dict(zip(keys, values))
# 輸出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
?示例二:
dic = dict(zip('abc', [1, 2, 3]))
print(dic)
# 輸出結果:{'a': 1, 'b': 2, 'c': 3}
2.1.6 dict+fromkeys方法
通常用來初始化字典, 設置value的默認值
my_dict = dict.fromkeys(['name', 'age', 'city'], None)
# 輸出: {'name': None, 'age': None, 'city': None}
2.2 字典的訪問
????????字典訪問使用的是中括號([ ])
2.2.1?使用鍵訪問字典元素
????????通過字典的鍵來訪問對應的值。如果鍵不存在,會拋出 KeyError
錯誤:
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# 訪問 'name' 鍵對應的值
print(my_dict['name']) # 輸出: Alice
利用[]中括號來訪問鍵值對的值?
2.2.2?使用?get()
?方法訪問字典元素
????????get()
方法可以通過鍵來訪問字典的值。如果鍵不存在,它會返回 None
,也可以指定一個默認值:
# 使用 get() 方法
print(my_dict.get('name')) # 輸出: Alice
# 使用 get() 方法訪問不存在的鍵
print(my_dict.get('gender')) # 輸出: None
# 使用 get() 方法訪問不存在的鍵并設置默認值
print(my_dict.get('gender', 'Not specified')) # 輸出: Not specified
2.2.3?元組列表則用元組訪問的方法訪問
? ? ? ? 字典的輸出有時候就是元組形式,因此訪問字典可能也就是訪問元組:
tuple_list = [(1, 'a'), (2, 'b'), (3, 'c')]
print(tuple_list[0]) # 輸出: (1, 'a')
print(tuple_list[1]) # 輸出: (2, 'b')
print(tuple_list[0][0]) # 輸出: 1 (訪問第一個元組中的第一個元素)
print(tuple_list[1][1]) # 輸出: 'b' (訪問第二個元組中的第二個元素)
2.3 字典的修改
2.3.1?直接修改字典元素
????????你可以通過直接指定鍵來修改字典中的值。如果鍵不存在,會新增該鍵值對:
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}# 修改 'age' 鍵對應的值
my_dict['age'] = 26
print(my_dict) # 輸出: {'name': 'Alice', 'age': 26, 'city': 'New York'}# 如果鍵不存在,添加新的鍵值對
my_dict['gender'] = 'Female'
print(my_dict) # 輸出: {'name': 'Alice', 'age': 26, 'city': 'New York', 'gender': 'Female'}
2.3.2?使用?update()
?方法修改字典
????????update()
方法可以用于修改字典中的元素。你可以傳入一個字典或鍵值對(可以是一個可迭代對象,例如關鍵字參數或元組列表):
# 修改現有的鍵值對
my_dict.update({'age': 27, 'city': 'Los Angeles'})
print(my_dict) # 輸出: {'name': 'Alice', 'age': 27, 'city': 'Los Angeles', 'gender': 'Female'}# 通過傳入鍵值對的元組列表來修改或添加元素
my_dict.update([('age', 28), ('gender', 'Male')])
print(my_dict) # 輸出: {'name': 'Alice', 'age': 28, 'city': 'Los Angeles', 'gender': 'Male'}
2.3.3?刪除字典元素
????????使用 del
或 pop()
可以刪除字典中的鍵值對:
# 使用 del 刪除鍵值對
del my_dict['city']
print(my_dict) # 輸出: {'name': 'Alice', 'age': 28, 'gender': 'Male', 'country': 'USA'}
# 使用 pop() 刪除并返回值
removed_value = my_dict.pop('age')
print(removed_value) # 輸出: 28
print(my_dict) # 輸出: {'name': 'Alice', 'gender': 'Male', 'country': 'USA'}
2.3.4?清空字典
????????clear()
方法可以清空字典中的所有鍵值對:
# 使用 clear() 清空字典
my_dict.clear()
print(my_dict) # 輸出: {}
2.4 字典方法
2.4.1?keys()
????????返回字典中所有的鍵:
my_dict = {'a': 1, 'b': 2}
print(my_dict.keys()) # 輸出: dict_keys(['a', 'b'])
2.4.2?values()
????????返回字典中所有的值:
my_dict = {'a': 1, 'b': 2}
print(my_dict.values()) # 輸出: dict_values([1, 2])
2.4.3?update()
????????更新字典,可以傳入另一個字典、鍵值對或可迭代的鍵值對序列。如果鍵已經存在,會更新值;如果鍵不存在,會添加新鍵值對:
my_dict = {'a': 1, 'b': 2}
my_dict.update({'b': 3, 'c': 4})
print(my_dict) # 輸出: {'a': 1, 'b': 3, 'c': 4}
2.4.4?fromkeys()
????????創建一個新字典,以指定的鍵創建字典,并為每個鍵設置默認值。可以傳遞一個可迭代對象作為鍵和一個可選的默認值:
keys = ['a', 'b', 'c']
new_dict = dict.fromkeys(keys, 0)
print(new_dict) # 輸出: {'a': 0, 'b': 0, 'c': 0}
2.4.5?setdefault()
????????如果鍵不存在于字典中,則將其添加,并將值設置為提供的默認值。如果鍵已經存在,則不對該鍵做任何修改:
my_dict = {'a': 1, 'b': 2}
print(my_dict.setdefault('c', 3)) # 輸出: 3
print(my_dict.setdefault('a', 3)) # 輸出: 1
2.4.6?clear()
????????清空字典中的所有元素:
my_dict = {'a': 1, 'b': 2}
my_dict.clear()
print(my_dict) # 輸出: {}
2.4.6?copy()
????????返回字典的淺拷貝。拷貝后的字典不會影響原字典:
my_dict = {'a': 1, 'b': 2}
new_dict = my_dict.copy()
print(new_dict) # 輸出: {'a': 1, 'b': 2}
2.4.7?items()
????????返回字典中所有鍵值對,以元組列表的形式返回。可以用于遍歷字典:
my_dict = {'a': 1, 'b': 2}
print(my_dict.items()) # 輸出: dict_items([('a', 1), ('b', 2)])
2.4.8?get()
????????返回指定鍵的值,如果鍵不存在,返回 None
(或指定的默認值):
my_dict = {'a': 1, 'b': 2}
print(my_dict.get('a')) # 輸出: 1
print(my_dict.get('c', 'Not Found')) # 輸出: 'Not Found'
3. 完整示例
????????下面是一個完整的 Python 示例,展示了字典的創建、修改、訪問以及使用一些常見的字典方法:
# 創建字典
student = {"name": "Alice", # 鍵值對: "name" -> "Alice""age": 20, # 鍵值對: "age" -> 20"courses": ["Math", "Science"], # 鍵值對: "courses" -> ["Math", "Science"]
}# 訪問字典的值
print("Name:", student["name"]) # 輸出: Alice
print("Age:", student.get("age")) # 輸出: 20# 使用 get 方法訪問一個不存在的鍵,提供默認值
print("Gender:", student.get("gender", "Not Specified")) # 輸出: Not Specified# 修改字典中的值
student["age"] = 21 # 修改 age 的值
print("Updated Age:", student["age"]) # 輸出: 21# 向字典中添加新的鍵值對
student["address"] = "123 Main St"
print("Address:", student["address"]) # 輸出: 123 Main St# 使用 update() 方法修改多個鍵值對
student.update({"name": "Bob", "age": 22})
print("Updated Name:", student["name"]) # 輸出: Bob
print("Updated Age:", student["age"]) # 輸出: 22# 使用 keys(), values(), items() 方法
print("Keys:", student.keys()) # 輸出: dict_keys(['name', 'age', 'courses', 'address'])
print("Values:", student.values()) # 輸出: dict_values(['Bob', 22, ['Math', 'Science'], '123 Main St'])
print("Items:", student.items()) # 輸出: dict_items([('name', 'Bob'), ('age', 22), ('courses', ['Math', 'Science']), ('address', '123 Main St')])# 刪除字典中的鍵值對
student.pop("address") # 刪除 "address" 鍵值對
print("After pop:", student) # 輸出: {'name': 'Bob', 'age': 22, 'courses': ['Math', 'Science']}# 使用 popitem() 刪除并返回字典中的最后一個鍵值對
last_item = student.popitem()
print("Popped item:", last_item) # 輸出: ('courses', ['Math', 'Science'])# 清空字典
student.clear()
print("After clear:", student) # 輸出: {}# 使用 fromkeys 創建一個新字典
new_dict = dict.fromkeys(["a", "b", "c"], 0)
print("New Dictionary:", new_dict) # 輸出: {'a': 0, 'b': 0, 'c': 0}
- 字典創建:我們使用大括號?
{}
?來創建字典,并指定鍵值對。字典的鍵是唯一的,值可以是任何數據類型。 - 訪問字典的值:我們通過?
dict[key]
?或?dict.get(key)
?來訪問字典中的值。get()
?方法可以提供默認值以避免鍵不存在時報錯。 - 修改字典的值:通過?
dict[key] = value
?可以修改字典中的值。 - 添加新的鍵值對:使用相同的方式通過鍵來添加新的鍵值對。
- 使用?
update()
?方法:可以批量更新字典中的多個鍵值對。 - 遍歷字典:通過?
keys()
?獲取所有的鍵,values()
?獲取所有的值,items()
?獲取所有的鍵值對。 - 刪除字典元素:使用?
pop()
?刪除指定的鍵值對,popitem()
?刪除并返回最后一個鍵值對。 - 清空字典:
clear()
?方法會刪除字典中的所有元素。 - 創建新字典:
fromkeys()
?方法通過指定的鍵創建新字典,并可以為每個鍵指定一個默認值。
4. 總結
【如果想學習更多深度學習文章,可以訂閱一下熱門專欄】
- 《Python/PyTorch極簡課》_十二月的貓的博客-CSDN博客
- 《深度學習理論直覺三十講》_十二月的貓的博客-CSDN博客
- 《小白讀透AI原理》_十二月的貓的博客-CSDN博客
如果想要學習更多pyTorch/python編程的知識,大家可以點個關注并訂閱,持續學習、天天進步你的點贊就是我更新的動力,如果覺得對你有幫助,辛苦友友點個贊,收個藏呀~~~