python學習筆記9(字典與集合)

2021-09-06 10:06:16 字數 4108 閱讀 5580

字典

定義:

使用鍵-值(key-value)儲存,具有極快的查詢速度

注意:字典是無序的

key的特性:

1、字典中的key必須唯一

2、key必須是不可變物件

3、字串、整數等都是不可變的,可以作為key

4、list是可變的,不能作為key

思考:儲存多位學生的姓名與成績

使用字典,學生姓名為key,學生成績作為值

dict1 =
元素的訪問

獲取:字典名[key]

print(dict1["lilei"])

#print(dict1["sunck"])#沒有

print(dict1.get("sunck"))

ret = dict1.get("sunck")

if ret == none:

print("沒有")

else:

print("有")

#輸出:

70none

沒有

新增

dict1["hanmeimei"] = 99
修改

#因為乙個key對應乙個value,所以,多次對乙個key的value賦值,其實就是修改值

dict1["lilei"] = 80

print(dict1)

刪除

dict1.pop("tom")

print(dict1)

遍歷

dict1 = 

for key in dict1:

print(key, dict1[key])

#輸出:

#tom 60

#lilei 70

print(dict1.values()) #輸出:dict_values([60, 70])

for value in dict1.values(): #[60,80,90]

print(value)

#輸出:60 70

print(dict1.items()) #輸出:dict_items([('tom', 60), ('lilei', 70)])

for k, v in dict1.items():

print(k, v)

#輸出:

#tom 60

#lilei 70

for i, v2 in enumerate(dict1):

print(i, v2)

#輸出:

0 tom

1 lilei

字典和list比較

1、查詢和插入的速度極快,不會隨著key-value的增加而變慢

2、需要占用大量的記憶體,記憶體浪費多

list

1、查詢和插入的速度隨著資料量的增多而減慢

2、占用空間小,浪費記憶體少

w = input()

#w = "good"

str = "sunck is a good man!sunck is a nice man!sunck is a hands man! sunck is a good man!sunck is a nice man!sunck is a great man!sunck is a noble man!sunck is a cool man!"

print(str.count(w))

集合(set)

概述:類似dict,是一組key的集合,不儲存value

本質:無序和無重複元素的集合

建立

建立set需要乙個list或者tuple或者dict作為輸入集合,重複元素在set中會自動被過濾

s1 = set([1,2,3,4,5,3,4,5])

print(s1)

s2 = set((1,2,3,3,2,1))

print(s2)

s3 = set()

print(s3)

#輸出:##

#

新增

s4 = set([1,2,3,4,5])

s4.add(6)

s4.add(3) #可以新增重複的,但是不會有效果

#s4.add([7,8,9]) #set的元素不能是列表,因為列表是可變的

s4.add((7,8,9))

#s4.add() #set的元素不能是字典,因為字典是可變的

print(s4)

#輸出:

update():插入整個list、tuple、字串,打碎插入

s5 = set([1,2,3,4,5])

s5.update([6,7,8])

s5.update((9,10))

s5.update("sunck")

print(s5)

#輸出:

刪除

s6 = set([1,2,3,4,5])

s6.remove(3)

print(s6)

遍歷

s7 = set([1,2,3,4,5])

for i in s7:

print(i)

set沒有索引

print(s7[3])    #報錯
enumerate():用於將乙個可遍歷的資料物件(如列表、元組或字串)組合為乙個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中

for index, data in enumerate(s7):

print(index, data)

#輸出:

0 11 2

2 33 4

4 5

交集與並集

s8 = set([1,2,3])

s9 = set([2,3,4])

#交集a1 = s8 & s9

print(a1)

print(type(a1))

#並集a2 = s8 | s9

print(a2)

print(type(a2))

型別轉化

#list-->set

l1 = [1,2,3,4,5,3,4,5]

s1 = set(l1)

#tuple-->set

t2 = (1,2,3,4,3,2)

s2 = set(t2)

#set-->list

s3 =

l3 = list(s3)

print(l3)

#set-->tuple

s4 =

t4 = tuple(s4)

print(t4)

用set去重

l = [1,2,3,4,3,4,5,6]

'''s = set(l)

l = list(s)

print(l)

'''l = list(set(l))

print(l)

python學習(9) 字典

字典 1 字典的使用 1.1 字典的定義 在python中,字典是一系列鍵 值對。每個鍵與每乙個值都相關聯,可以使用鍵來訪問與之關聯的值 與鍵相關聯的值可以是數字 字串 列表及字典,和json的結構非常類似 鍵和值之間用冒號分隔,而鍵 值對之間用逗號分隔。字典中可以包含任意數量的鍵值對 user1 ...

Swift學習筆記(9) 字典

字典是一種儲存多個相同型別的值的容器。每個值 value 都關聯唯一的鍵 key 鍵作為字典中的這個值資料的識別符號。字典中的資料項並沒有具體順序。通過識別符號 鍵 訪問資料。使用dictionary key,value 定義 key 字典中鍵的資料型別。value 字典中對應於這些鍵所儲存值的資料...

《轉》python學習(9)字典

一 對映型別 我理解中的對映型別是 鍵值對的關係,鍵 key 對映值 value 且它們是一對多的關係。字典是python唯一的對映型別。擴充套件1 雜湊表 一種資料結構,值是根據相關的鍵進行資料儲存的,形成 鍵 值對 key value pairs 雜湊表中的值是沒有順序的。擴充套件2 對映型別與...