資料型別可以分為可變資料型別和 不可變資料型別兩種:
不可變資料型別:元組(tuple),bool, int, str(對字串的任何操作都是產生乙個新的str,園幼兒字串是不變的)
可變資料型別: 列表(ist),字典(dict)
字典:對映結構,字典的key必須是不可變資料型別(元組,bool int ,str)
字典的優點:二分查詢;可儲存大量的關係型資料
1.直接增加鍵值對:
dic=dic[
'hobbi
']='
dancing
'print(dic)
執行結果:
dic=dic[
'hobbi
']='
dancing
'print(dic)
如果新增的鍵值是字典中已經存在的鍵,則會覆蓋該鍵對應的原來的值:
dic=dic[
'hobbi
']='
dancing'#
如果沒有,會增加
dic['
name
']='
xuanzhang'#
如果有,會覆蓋
print(dic)
執行結果:
2.setdefault()方法:
dic=dic.setdefault(
'hobbi
') #
值預設,預設新增的對應該鍵的值為none
#dic.setdefault('hobbi','dancing')
print(dic)
執行結果:
如果setdefault()後面value對應的引數有值,則新增:
dic=#dic.setdefault('hobbi') #值預設,預設新增的對應該鍵的值為none
dic.setdefault('
hobbi
','dancing')
print(dic)
執行結果:
如果setdefault中的鍵已經存在,則無任何變化:
dic=dic.setdefault(
'name
','xuan')
print(dic)
執行結果:
所以,通過dict[key]=value 和dict.setdefault(key,value)方法的區別是:
當key在字典中不存在時,兩種方法都是在字典中增加該鍵值對;
當key在字典中已經存在時,前者會修改,即覆蓋,後者不會修改原來的值,即無變化,不進行任何操作;
dic.pop(key)方法: 有返回值,返回鍵對應的值
dic=return_value=dic.pop('
name
') #
pop()方法有返回值,返回該鍵對應的值
print(return_value)
執行結果:
xuanxuan
dic.popitem():隨機刪除字典的鍵值對(python3.6字典有序,刪最後乙個),有返回值,返回鍵值對組成的tuple
dic=return_value=dic.popitem() #
pop()方法有返回值,返回該鍵對應的值
print(return_value)
執行結果:
('gender
', '
female
')
dict.clear() #不是從記憶體中刪除,只是刪除字典中的元素,clear之後字典為空
dic=dic.clear()
#不是從記憶體中刪除,沒有返回值
print(dic) #
字典空
執行結果:
{}
del dict : 刪除字典,從記憶體中徹底刪除,也可以指定刪除某乙個鍵
dic=del dic['
name
'] #
可以刪掉字典中的某乙個鍵值對
print(dic)
執行結果:
刪除整個字典(從記憶體)
dic=del dic #
從記憶體中刪掉字典
print(dic) #
會報錯
執行結果:
traceback (most recent call last):file
"f:/workspace_python/pycharm_projects/fullstack2018-08-17/week2/day07/01.py
", line 12, in
print(dic) #
會報錯nameerror: name '
dic'
isnot defined
1. 可以直接指定鍵,通過賦值修改(因為字典是可變物件)
dic=dic[
'name
']='
xuan
'print(dic)
執行結果:
2.dict1.update(dict2) 會更新dict1(按照dict2)
dict2有dict1中的鍵,則會覆蓋dict1,如果dict1中沒有,則會追加到dict1
dic=dic2=
dic2.update(dic)
print(dic2)
執行結果:
dict.keys() #返回字典的鍵,返回的結果可以當做list操作
dict.values() #返回字典的值,返回的結果可以當做list操作
dic.itmes() #返回字典的鍵值 成乙個tuple 返回的結果可以當做list操作
dic=print(dic['
name
'])
執行結果:
xuanxuan
dic=print(dic.keys()) #
返回的是dic的鍵,可以按照list進行操作
print(dic.values()) #
返回的是dic的值,可以相當於list進行操作
print(dic.items()) #
返回的是鍵值組成的tuple
執行結果:
dict_keys(['name
', '
age', '
gender'])
dict_values([
'xuanxuan
', 22, '
female'])
dict_items([(
'name
', '
xuanxuan
'), ('
age', 22), ('
gender
', '
female
')])
dic=for i in
dic: # for i in dic.keys():兩種方法都是返回dic的key
print(i)
執行結果:
nameagegender
dic.values()
for i indic.values():
print(i)
執行結果:
xuanxuan22female
dic.items()
dic=for i in
dic.items():
print(i)
執行結果:
('name
', '
xuanxuan')
('age', 22)('
gender
', '
female
')
dic.get(key,none) #返回字典的對應的值,當鍵不存在時,可以返回預設值none,當然也可以設定
dic=print(dic.get('
name
')) #
xuanxuan
print(dic.get('
name1
','該鍵值不存在
')) #
並不會報錯,
執行結果:
xuanxuan該鍵值不存在
Python學習筆記day05
高階函式 課後練習 不可變的資料型別一定可雜湊 hash 內建函式可以判斷某個型別是否可雜湊 s1 s2 s3 s4 print s1,s2,s3的交集 s1.intersection s2,s3 print s1,s2,s3的交集 s1 s2 s3 print s1,s2,s3的並集 s1.uni...
C 學習筆記 day05
1 變數的儲存 1 記憶體是一塊空間,把其中的每個位元組做了編號,為了以後計算機能通過編號找到資料 2 編址方式 絕對編址 在整個程式中使用 相對編址 位元組相對於邏輯0偏移量,在程序中使用 4 儲存位址 指標 儲存變數的位址 指標的型別由將要儲存的位址的變數型別決定 int 只能儲存int變數的位...
java學習筆記day05 陣列
陣列 是一種容器,可以同時存放多個資料值。陣列的特點 1.陣列是一種引用資料型別 2.陣列當中的多個資料,型別必須統一 3.陣列的長度在程式執行期間不可改變 陣列的初始化 在記憶體當中常見乙個陣列,並且象其中賦予一些預設值。兩種常見的初始化方式 1.動態初始化 指定長度 2.靜態初始化 指定內容 動...