前言:python的基本數據類型可以分為三類:數值類型、序列類型、散列類型,本文主要介紹散列類型。
一、散列類型
散列類型:內部元素無序,不能通過下標取值
1)字典(dict):用 {} 花括號表示,每一個元素包含鍵(key)和值(value),key是一般是唯一的,如果重復最后的一個鍵值對會替換前面的,value不需要唯一。
2)集合(set):用 {} 花括號表示,存放一個個元素,可以是任意類型,但元素不允許重復。
注意:
1)用 {} 花括號表示,每一個元素包含鍵(key)和值(value),key是一般是唯一的,如果重復最后的一個鍵值對會替換前面的,value不需要唯一。
2)value可以取任何數據類型,但key是不可變的,新增鍵值對后,key不可以修改,單value可以修改。
- dic[key]=value 無則創建,若已有對應的key存在則修改該鍵值對的value
# 字典 {key:value, key:value} 鍵/值對形式 # key是唯一的,是不可變類型數據 dic1 = {'name':'張三','age':18,'gender':'男'} dic2 = {'a':11,'b':22} dic1['city'] = '廣州' # 新增鍵值對 print(dic1) dic1['city'] = '上海' # 根據key修改值 print(dic1) # updata():添加多個鍵值對(將一個字典更新到一個字典中) dic1.update(dic2) print(dic1) dic2.update({'c': 33, 'd': 44}) print(dic2)
2)刪
- pop():參數為字典的鍵(key)
- popitem() :刪除最后添加的鍵值對
- clear():清空字典中的所有鍵值對
- 關腱字del:del dic[key]
dic1 = {'name':'張三','age':18,'gender':'男','city':'廣州'} # pop():刪除,需要傳入一個鍵(key) dic1.pop('gender') print(dic1) # popitem():不需要傳參,刪除字典中最后添加進來的一個鍵值對 dic1.popitem() print(dic1) # 關鍵字del del dic1['age'] print(dic1) # clear():清除字典中的所有鍵值對 dic1.clear() print(dic1)
運行結果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py {'name': '張三', 'age': 18, 'city': '廣州'} {'name': '張三', 'age': 18} {'name': '張三'} {} Process finished with exit code 0
3)改
dic[key]=value 通過鍵去修改值,在第一點中已經舉出例子
4)查
- get():獲取鍵對應的值,但key不存在時不會報惜,會打印None
- values():獲取所有的值,可以用list將結果轉換成列表
- itmes(): 獲取所有的鍵值對,可以用list將結果轉換成列表,列表中每個鍵值對組成一個元組
dic1 = {'name':'張三','age':18,'gender':'男'} # get():獲取鍵對應的值 print(dic1.get('name')) print('這是不存在的鍵值對:{}'.format(dic1.get('city'))) # keys():返回字典中所有的鍵 print(dic1.keys()) dic_key = dic1.keys() print(list(dic_key)) # 通過list()把鍵以列表的形式輸出 # values():返回字典中所有的值 print(dic1.values()) dic_value = dic1.keys() print(list(dic_value)) # 通過list()把鍵以列表的形式輸出 # items:返回字典中所有的鍵值對,每一個鍵值對都會打包成元組(key,value) print(dic1.items()) dic_item = dic1.items() print(list(dic_item))
運行結果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py 張三 這是不存在的鍵值對:None dict_keys(['name', 'age', 'gender']) ['name', 'age', 'gender'] dict_values(['張三', 18, '男']) ['name', 'age', 'gender'] dict_items([('name', '張三'), ('age', 18), ('gender', '男')]) [('name', '張三'), ('age', 18), ('gender', '男')] Process finished with exit code 0
三、集合set
1.定義
注意:要創建一個空集合只能用set(),不能用用{},因為后者創建的是一個空字典
2.集合的常用方法
集合的方法比較簡單,常用增加元素add,刪除元素pop()、remove()
set1 = {1, 'python', 'a', 2, 'a', 3, 4, 'python', 5, 6} print(set1) # 去掉重復的元素 li = [79, 1, 89, 3, 90, 5, 89, 321, 66, 7] li = list(set(li)) # 利用set()轉換成集合去重 print(li) dic = {} # 表示空字典, 空集合用set() set1 = set() print(type(dic), type(set1)) # type()是python內置函數,用於查看數據類型 set1.add(1) set1.add(2) print(set1) set1.pop() print(set1) set1.remove(2) print(set1)
運行結果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py {1, 2, 3, 4, 5, 6, 'python', 'a'} [1, 321, 3, 66, 5, 7, 79, 89, 90] <class 'dict'> <class 'set'> {1, 2} {2} set() Process finished with exit code 0