1. 程式人生 > 其它 >python學習記錄——字典篇

python學習記錄——字典篇

技術標籤:pythonpython

字典的定義和訪問
<1> 使用key訪問
<2> 使用 字典.get(key[,資料值])訪問
# 字典 dict 使用{}定義,是由鍵值對組成(key-value)
# 變數 = {key1: value1, key2: value2, ···} 一個key: value 鍵值對是一個元素
# 字典的 key 可以是 字串型別和數字型別(int float), 不能是 列表
# value值可以是任意型別

# 1. 定義空字典
my_dict = {}
my_dict1 = dict
() print(my_dict, type(my_dict)) print(my_dict1, type(my_dict1)) # 2. 定義帶資料的字典 my_dict2 = {'name': 'isaac', 'age': 18, 'like': ['學習', '購物', '遊戲'], 1: [2, 5, 8]} print(my_dict2) # 訪問 value 值:在字典中沒有下標的概念,所以要使用 key 值訪問 value 值 # 18 print(my_dict2['age']) # '購物' print(my_dict2['like'][1]) # 如果key值不存在
print(my_dict2['gender']) # 程式碼報錯,因為key值不存在 # 字典.get(key) 如果key值不存在,不會報錯,返回的是None print(my_dict2.get('gender')) # 字典.get(key, 資料值) 如果key存在,返回key對應的value值,如果key不存在,返回書寫的資料值 print(my_dict2.get('gender', '男')) # 男 print(my_dict2.get('age', 1)) # 18 # 字典長度由鍵值對個數決定,可以由len()計算 print(len(my_dict2))
# 4
字典中新增和修改資料
my_dict = {'name': 'isaac'}

# 字典中新增和修改資料,使用key值進行新增和修改
# 字典[key] = 資料值;  如果key值存在就是修改,如果key值不存在,就是新增

my_dict['age'] = 18  # key值不存在,新增
print(my_dict)  # {'name': 'isaac', 'age': 18}

my_dict['age'] = [1, 2, 3]  # key值已經存在,就是修改資料
print(my_dict)  # {'name': 'isaac', 'age': [1, 2, 3]}

# 注意點:key值 int的1 和 float的1.0 代表一個key值 2和2.0一樣,3和3.0一樣……
my_dict[1] = 'int'
print(my_dict)  # {'name': 'isaac', 'age': [1, 2, 3], 1: 'int'}
my_dict[1.0] = 'float'
print(my_dict)  # {'name': 'isaac', 'age': [1, 2, 3], 1: 'float'}
字典中刪除資料
<1> del 字典名[key]
<2> 字典.pop(key)
<3> 字典.clear()
<4> del 字典名
my_dict = {'name': 'isaac', 'age': 19, 1: 'float', 2: 'aa'}

# 根據key值刪除資料  del 字典名[key]
del my_dict[1]
print(my_dict)  # {'name': 'isaac', 'age': [1, 2, 3], 1: 'float'}

# 字典.pop(key)  根據key值刪除,返回值是刪除的key對應的value值
result = my_dict.pop('age')
print(my_dict)  # {'name': 'isaac', 2: 'aa'}
print(result)  # 19

# 字典.clear() 清空字典,刪除所有的鍵值對
my_dict.clear()
print(my_dict)  # {}

# del 字典名  直接將這個字典刪除,不能使用這個字典了
del my_dict  # 後邊的程式碼不能再直接使用這個變量了,除非再次定義
print(my_dict)  # NameError: name 'my_dict' is not defined
字典中遍歷資料
<1> for迴圈直接遍歷字典,遍歷的是字典的key值(自己測試value也可以。。)
my_dict = {'name': 'isaac', 'age': 18, 'gender': '男'}

# for迴圈體使用key直接遍歷字典
for key in my_dict:
    print(key, my_dict[key])
    # name isaac
    # age 18
    # gender 男
    
# for迴圈體使用value直接遍歷字典
for value in my_dict:
    print(value, my_dict[value])
    # name isaac
    # age 18
    # gender 男
<2> 字典.keys()
my_dict = {'name': 'isaac', 'age': 18, 'gender': '男'}

# 字典.keys() 獲取字典中所有的key值,得到的型別是dict_keys,該型別具有的特點是
# 1. 可以使用list() 進行型別轉換,即將其轉換為列表型別
# 2. 可以使用for迴圈進行遍歷
result = my_dict.keys()
print(result, type(result))  # dict_keys(['name', 'age', 'gender']) <class 'dict_keys'>
for key in result:
    print(key)
    # name
    # age
    # gender
<3> 字典.values()
my_dict = {'name': 'isaac', 'age': 18, 'gender': '男'}

# 字典.values() 獲取所有的value值,型別是 dict_values
result = my_dict.values()
print(result, type(result))  # dict_values(['isaac', 18, '男']) <class 'dict_values'>
for value in my_dict.values():
    print(value)
<4> 字典.items()
my_dict = {'name': 'isaac', 'age': 18, 'gender': '男'}

# 字典.items()  獲取所有的鍵值對,型別是 dict_items,(key,value)組成元組型別
# 1.可以使用list() 進行型別轉換,即將其轉換為列表型別
# 2.可以使用for迴圈進行遍歷
result = my_dict.items()  # ()是元組,你還記得嗎
print(list(result))  # [('name', 'isaac'), ('age', 18), ('gender', '男')]
print(result, type(result))  # dict_items([('name', 'isaac'), ('age', 18), ('gender', '男')]) <class 'dict_items'>
for item in my_dict.items():
    print(item[0], item[1])
    # name isaac
    # age 18
    # gender 男

# 拆包:將容器中的資料分別給到不同的變數
for k, v in my_dict.items():  # k是元組中的第一個資料,v是元組中的第二個資料
    print(k, v)
    # name isaac
    # age 18
    # gender 男

容器的公共方法

1. 運算子
運算子Python 表示式結果描述支援的資料型別
+[1, 2] + [3, 4][1, 2, 3, 4]合併字串、列表、元組
*[‘Hi!’] * 4[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]複製字串、列表、元組
in3 in (1, 2, 3)True元素是否存在字串、列表、元組、字典
not in4 not in (1, 2, 3)True元素是否不存在字串、列表、元組、字典
注意:

*+,得到的是一個新容器

in/not in判斷的是字典的key值是否存在

+
>>> "hello " + "itcast"
'hello itcast'
>>> [1, 2] + [3, 4]
[1, 2, 3, 4]
>>> ('a', 'b') + ('c', 'd')
('a', 'b', 'c', 'd')
*
>>> 'ab' * 4
'ababab'
>>> [1, 2] * 4
[1, 2, 1, 2, 1, 2, 1, 2]
>>> ('a', 'b') * 4
('a', 'b', 'a', 'b', 'a', 'b', 'a', 'b')
in
>>> 'itc' in 'hello itcast'
True
>>> 3 in [1, 2]
False
>>> 4 in (1, 2, 3, 4)
True
>>> "name" in {"name":"Delron", "age":24}
True

注意,in在對字典操作時,判斷的是字典的鍵