python学习 day5 (3月6日)
映射,{}鍵值對(duì),key 唯一的 ,可哈希,容器型數(shù)據(jù)類型
可變的(不可哈希): 字典 列表 集合 都不可做鍵
不可變的(可哈希): 數(shù)字 字符串 bool 元組 frozeset() 可以做鍵
#__author : 'liuyang' #date : 2019/3/6 0006 dic= {'name':'alex','age':18,'name':'python' } print(dic) # 數(shù)據(jù)關(guān)聯(lián)性 dic = {'name_list':['博哥','菊哥','b哥'],'barry':{'name':'太白金星','age':18,'hobby':'wife',} } print(dic)
增刪改查?
一.增
dic[key] = '****' ? ? ? ? ? 有則改值 無(wú)則添加
dic.setdefault('name','liusi') ---(‘鍵’,‘值’) ? ? 有則不變 無(wú)則添加
# 增 dic= {'name':'alex','age':18,'name':'python' } print(dic) # 鍵值對(duì) 是唯一的,默認(rèn)第一個(gè)嗎 第二個(gè)! dic['name'] = 'liuer' print(dic) # 有則改值 無(wú)則添加 dic['nama'] = 'liusan' print(dic) # 有則不變 無(wú)則添加 dic.setdefault('name','liusi') print(dic) dic.setdefault('nam','liuwu') print(dic) dic = {1:2 , 3:6} # 若7 = Noneprint(dic.setdefault(1))#2 #第一步先根據(jù) 鍵 查值
# 第二部 有則不變 無(wú)則添加 print(dic.setdefault(1,5)) # 返回 5
二.刪:
pop() ?刪除鍵值對(duì) ? (返回值)
popitem 返回值是元組,元組里是key和values
clear() 清空
del ?按照鍵?
刪字典
除了del 都是 字典.方法(key) ?dic....(key)?
# 刪 dic= {'name':'alex','age':18,'name':'python' } d = dic.pop('name') print(d) print(dic) # 刪沒(méi)有的會(huì)報(bào)錯(cuò) 但是可以設(shè)置信息 # d = dic.pop('naaa') d = dic.pop('naaa','沒(méi)有元素') print(d) d = dic.pop('naaa',None) print(dic) print(d) dic.clear() print(dic) dic= {'name':'alex','age':18, } # 刪除最后一個(gè) 從3.6 開始 這個(gè)也有返回值得 pop() a = dic.popitem() print(dic) print(a) del dic['name'] print(dic) # 沒(méi)有元素回報(bào)錯(cuò) 而且沒(méi)辦法 用pop 第二個(gè)提示值 # del dic['nam'] # print(dic) # del dic # print(dic) # 錯(cuò)誤 沒(méi)有字典里了三.改:
dic[key]= '******'
dic.update = #不等于 ?update(name,'sss') ? ? ?#不對(duì)
#正確書寫 ?dic.update(name='liuer' , age = 15) ?有則改之,無(wú)則添之
? dic,updat(dic1) ? ?# 換成字符串的形式 ,所以可以
# 改 dic= {'name':'alex','age':18, } dic['name'] = 'liuer' print(dic) dic['name'] = ['liuer' , 'liusan '] print(dic) # 錯(cuò)誤 因?yàn)?name 和 不是逗號(hào) # dic.update(name,'wanger') # 有也不改 print(dic) dic= {'name':'alex','age':18, }# 正確寫法 #沒(méi)有dic 等于 dic.update() # 有則改之 無(wú)責(zé)添之 級(jí)別高 后者改前面 dic.update(name = 'wanger' , money = 11000) print(dic) dic= {'name':'alex','age':18, } dic1= {'name':'liuer','high':180,'language':'python' } #不對(duì) 這是 update 的作用 記錯(cuò)了 # dic = dic1.update(dic) # 正確書寫 dic.update(dic1) print(dic)四.查:
dic[key] ?沒(méi)有此鍵,報(bào)錯(cuò)
dic.get[key] ?有就返回 沒(méi)有就返回None ?
for 循環(huán)
# 查 print(dic['name']) print(dic.get('name' , None))''' dic = {'name_list': ['博哥', '菊哥', 'b哥', 'alex'],'barry': {'name': '太白金星','age': 18,'hobby': 'wife',} }五.字典的值鍵三種方法:
1.dic.keys (= dic 使用for 循環(huán)的時(shí)候)
dic = {'name': '太白金星','age': 18,'hobby': 'wife',} for i in dic:print(i)# dic.keys() 類似于list的容器類類型 高仿列表 元組 ret = dic.keys() print(ret, type(ret)) for key in ret:print(key) print(ret[0]) # 可以轉(zhuǎn)化成list print(list(ret))? ? 2.dic.values
dic.values() print(dic.values()) # 轉(zhuǎn)化成list print(list(dic.values())) for v in dic.values():print(v)3.dic.items
print(dic.items()) print(list(dic.items()))for i in dic.items():print(i)面試題:分別賦值 ?
a, b = (1, 2) print(a,b) a, b, c = (1, 2, 3) print(a,b,c) a, b = 100, 1000 a, b = [100, 1000] a, b = {'name':'alex', 'age': 73} print(a,b) 分別賦值——————精確講解dit.items()的含義 a = 18 b = 32 a, b = b, a print(a,b) print(dic.items()) for k,v in dic.items():'''k,v = ('name', '太白金星')k,v = ('age', 18)k,v = ('hobby', 'wife')'''print('這是鍵:', k)print('這是值:', v) d = dic.fromkeys([1,2,3],'值')print(d) # 不可變 類型 沒(méi)坑
有可變類型 有坑 d = dic.fromkeys([1,2,3],[])
d[1].append(33)
print()
{1:33 , 2:33 , 3:33}
?
d = dic.fromkeys([1,2,3],10) print(d) d[1] = 20 print(d)一個(gè)杯子 ?可以裝水 ? 大家都用 ? -----> ? ? 可變 ? ? ?都變 ? ? ? ?不可變的 ?別的不變 只改可變的
不可變的又建立了一個(gè) 內(nèi)存地址 ?a ?= 10 ?a = 20 ? 兩個(gè)地址
?
字典的嵌套:dic[][]
實(shí)例:
# 1,給這個(gè)列表['博哥', '菊哥', 'b哥', 'alex'] 追加一個(gè)元素 '老男孩'。 # 2,將這個(gè)列表['博哥', '菊哥', 'b哥', 'alex']中的alex變成首字母大寫。 # 3,將這個(gè)鍵值對(duì) 'name': '太白金星' 的 '太白金星' 改成男神。 # 4,給barry對(duì)應(yīng)的小字典增加一個(gè)鍵值對(duì): weight: 160 ''' dic = {'name_list': ['博哥', '菊哥', 'b哥', 'alex'],'barry': {'name': '太白金星','age': 18,'hobby': 'wife',} } dic['name_list'].append('老男孩') #dic['name_list'] += '老男孩' # ['博哥', '菊哥', 'b哥', 'alex', '老', '男', '孩'], 不對(duì) print(dic) # 不會(huì)做因?yàn)?沒(méi)有把改了的值 換到以前的位置 dic['name_list'][3] = dic['name_list'][3].capitalize() print(dic) dic['barry']['name'] = '男神' print(dic) # 不對(duì) # dic['barry']['weight',16] # print(dic) # 一般方法 找位置 賦值 增加 或者 更改 一樣用 dic['barry']['weight'] = 12 print(dic) # 函數(shù)方法 , 使用(object,'') # 這樣就添加了 不大懂 dic['barry'].setdefault('weight',16) print(dic)dic['keys'] 可能列表操作.append()
dic = {}
dic1 = dic.fromkeys(iter, object)
a = d.fromkeys([1,2,3],'str') # print(id(a[1]),id(a[2]))#內(nèi)存地址不同 改變一個(gè)其它肯定不變 {1: 'str', 2: 'str', 3: 'str'}lis = ['alex','wusir','太白']
a = d.fromkeys(lis,[]) a['alex'] = 1
{'alex': [], 'wusir': [], '太白': []}
{'alex': 1, 'wusir': [], '太白': []}
轉(zhuǎn)載于:https://www.cnblogs.com/Doner/p/10482541.html
總結(jié)
以上是生活随笔為你收集整理的python学习 day5 (3月6日)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Quick-Cocos2d-x初学者游戏
- 下一篇: QT Quick项目简介