36、有一個list["This","is","a","Boy","!"],所有元素都是字符串,對他進行大小寫 無關的排序
l1 = ['This','is','a','Boy','!']
print(sorted(l1))
37、列舉字符串、列表、元組、字典每個常用的5個方法?
字符串:repleace,strip,split,reverse,upper,lower,join.....
列表:append,pop,insert,remove,sort,count,index.....
元組:index,count,len(),dir()
字典:get,keys,values,pop,popitems,clear,update,items.....
38、什么是反射?以及應用場景?
在絕大多數語言當中都有反射機制的存在, 可以用字符串的方式去訪問對象的屬性,調用對象的方法(但是不能去訪問方法),Python中一切皆對象,都可以使用反射
1)、反射機制是很多框架的基石。
2)、
39、簡述Python的深淺拷貝?
copy():淺copy,淺拷貝指僅僅拷貝數據集合的第一層數據
deepcopy():深copy,深拷貝指拷貝數據集合的所有層
40、Python 垃圾回收機制?
垃圾回收機制是自動幫助我們管理內存,清理垃圾的一種工具
1)、引用計數
當一個對象的引用被創建或者復制時,對象的引用計數加1;
當一個對象的引用被銷毀時,對象的引用計數減1;
當對象的引用計數減少為0時,就意味着對象已經沒有被任何人使用了,可以將其所占用的內存釋放了。
優點:
簡單、直觀
實時性,只要沒有了引用就釋放資源。
缺點:
維護引用計數需要消耗一定的資源
循環應用時,無法回收。也正是因為這個原因,才需要通過標記-清理和分代收集機制來輔助引用計數機制。
2)、標記-清除
“標記-清除”不改動真實的引用計數,而是將
集合中對象的引用計數復制一份副本,改動該對象引用的副本。對於副
本做任何的改動,都不會影響到對象生命走起的維護。
3)、分代回收
將系統中的所有內存塊根據其存活時間划分為不同的集合,
每一個集合就成為一個“代”,垃圾收集的頻率隨着“代”的存活時間的增大而減小。
也就是說,活得越長的對象,就越不可能是垃圾,就應該減少對它的垃圾收集頻率。
那么如何來衡量這個存活時間:通常是利用幾次垃圾收集動作來衡量,
如果一個對象經過的垃圾收集次數越多,可以得出:該對象存活時間就越長。