python 字典取值的时间复杂度_五道常见的Python面试题一定不要答错!
生活随笔
收集整理的這篇文章主要介紹了
python 字典取值的时间复杂度_五道常见的Python面试题一定不要答错!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第1題:閱讀下面的代碼,默讀出A0,A1至An的最終值。
默讀代碼類的題目,相對來說是比較簡單的。重點去研究列表解析,之后你就可以輕松的回答這些問題啦
第2題:如何提高python的運行效率?
1.數據結構一定要選對 能用字典就不用列表:字典在索引查找和排序方面遠遠高于列表。
2.多用python中封裝好的模塊庫關鍵代碼使用外部功能包(Cython,pylnlne,pypy,pyrex)
3.使用生成器
4.針對循環的優化 盡量避免在循環中訪問變量的屬性
5.使用較新的Python版本
第3題: Python字典有什么特點,從字典中取值,時間復雜度是多少?
dict(中文叫字典)是另一種可變容器模型,且可存儲任意類型對象。 字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號{}中 字典的特性
不過dict的查找速度快不是沒有代價的,dict的缺點是占用內存大,還會浪費很多內容,list正好相反,占用內存小,但是查找速度慢。
dict的第二個特點就是存儲的key-value序對是沒有順序的!這和list不一樣。
從字典中取值,時間復雜度是多少 O(1),字典是hash table實現
第4題: 多線程、多進程?
線程是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。
一條線程指的是進程中一個單一順序的控制流,一個進程中可以并發多個線程,每條線程并行執行不同的任務。一個線程是一個execution context(執行上下文),即一個cpu執行時所需要的一串指令。
一個程序的執行實例就是一個進程。每一個進程提供執行程序所需的所有資源。(進程本質上是資源的集合)
一個進程有一個虛擬的地址空間、可執行的代碼、操作系統的接口、安全的上下文(記錄啟動該進程的用戶和權限等等)、唯一的進程ID、環境變量、優先級類、最小和最大的工作空間(內存空間),還要有至少一個線程。
每一個進程啟動時都會最先產生一個線程,即主線程 然后主線程會再創建其他的子線程。進程與線程區別
1.同一個進程中的線程共享同一內存空間,但是進程之間是獨立的。
2.同一個進程中的所有線程的數據是共享的(進程通訊),進程之間的數據是獨立的。
3.對主線程的修改可能會影響其他線程的行為,但是父進程的修改(除了刪除以外)不會影響其他子進程。
4.線程是一個上下文的執行指令,而進程則是與運算相關的一簇資源。
5.同一個進程的線程之間可以直接通信,但是進程之間的交流需要借助中間代理來實現。
6.創建新的線程很容易,但是創建新的進程需要對父進程做一次復制。
7.一個線程可以操作同一進程的其他線程,但是進程只能操作其子進程。
8.線程啟動速度快,進程啟動速度慢(但是兩者運行速度沒有可比性)。
第5題: 請盡可能列舉python列表的成員方法,并給出以下列表操作的答案:
a=[1, 2, 3, 4, 5], a[::2]=?, a[-2:] = ?
一行代碼實現對列表a中的偶數位置的元素進行加3后求和?
將列表a的元素順序打亂,再對a進行排序得到列表b,然后把a和b按元素順序構造一個字典d。
總結
以上是生活随笔為你收集整理的python 字典取值的时间复杂度_五道常见的Python面试题一定不要答错!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker容器mysql头文件_在Do
- 下一篇: websocket python爬虫_p