2019-09-18-21:11:24(初學(xué)者不會學(xué)博客,望大家見諒見諒)
今天學(xué)的內(nèi)容是有關(guān)list.、dict、set集合的使用方法和注意事項
list和dict在循環(huán)中不可刪,而且list在迭代輸出時進(jìn)行刪除是會導(dǎo)致索引跟著改變
所以一般list不在循環(huán)過程中進(jìn)行刪除
list和dict要進(jìn)行刪除時,應(yīng)該把要刪除的記錄到另一個列表中,然后在進(jìn)行刪除
深淺拷貝:
淺拷貝只拷貝第一層的內(nèi)容,而深拷貝是全部內(nèi)容都進(jìn)行了拷貝
下面是總結(jié)的內(nèi)容:
一.重要知識點
1. str. join() 把列表變成字符串
2. 列表不能在循環(huán)的時候刪除.因為索引會跟著改變
注意:由于刪除元素會導(dǎo)致元素的索引改變, 所以容易出現(xiàn)問題. 盡量不要在循環(huán)中直接去刪除元素.
可以把要刪除的元素添加到另?個集合中然后再批量量刪除.
3. 字典也不能直接循環(huán)刪除.(dict中的元素在迭代過程中是不允許進(jìn)?刪除的)
把要刪除的內(nèi)容記錄在列表中. 循環(huán)列表. 刪除原列表, 字典中的數(shù)據(jù)
4. fromkeys() 不會對原來的字典產(chǎn)生影響. 產(chǎn)生新字典(神坑, 考試)
5. set集合. 不重復(fù), 無序.
注意: set集合中的元素必須是可hash的, 但是set本身是不可hash的. set是可變的
set去重操作比較常用
6. 想轉(zhuǎn)換成什么.就用什么括起來
7. 深淺拷貝(拷貝要比創(chuàng)建對象過程要快得多)
1. 直接賦值. 兩個變量指向同一個對象.
對于list, set, dict來說, 直接賦值. 其實是把內(nèi)存地址交給變量.并不是復(fù)制?份內(nèi)容.
所以. lst1的內(nèi)存指向和lst2是?樣的. lst1改變了, lst2也發(fā)?了改變
2. 淺拷貝:只拷貝第一層內(nèi)容. 第二層內(nèi)容不會被拷貝copy()
3. 深度拷貝: 對象中的所有內(nèi)容都會被拷貝一份
import copy
copy.deepcopy()
二.錯誤總結(jié)
1.把問題復(fù)雜化
lst= ['jinpingmei','解救吾先生','美國往事','西西里的美麗傳說']
dic={}
for el in lst:
content=input('請給%s電源評分:' % el)
if dic.get(el)==None: '''
dic[el]=content 這里可以更加簡單寫
else: 改正的方法在下一個
dic[el].append(content) '''
print(dic)
for el in lst:
content=input('請給"%s"電影評分:' % el)
dic[el]=content
print(dic)
#錯先這個錯誤的原因是因為沒有想到dic字典的增刪改查中的增的作用,把問題復(fù)雜化了,還不會充分利用連貫所學(xué)的知識點
解決方法:需要把所學(xué)的知識點在過一遍,然后總結(jié)看哪些知識點是可以連貫在一起使用
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
