Python面試題(十六)


1、取出兩個升序數組中的最小的一半的元素組成一個新的升序數組。

map(lambda x, y: x if x < y else y, a, b)
答案

 

2、用至少2種不同的方式刪除一個list里面的重復元素

a = [1, 2, 2, 4, 34, 3, 4, 56, 65, 456, 5, 6456, 456, 54, 45, 6, 464, 564]
# 方法一
new_list3 = list(set(a))

# 方法二
new_list = []
for num in a:
    if num not in new_list:
        new_list.append(num)

# 方法三
dict1 = dict.fromkeys(a)
new_list2 = dict1.keys()
答案

 

3、利用線程池(10個線程)實現一個並行打印10行信息的程序,打印This is thread xx.(注:xx為線程id)

 

4、關系型數據庫的事務隔離級別有哪些,分別有什么影響?

1、未提交讀(Read Uncommitted) 
    直譯就是"讀未提交",意思就是即使一個更新語句沒有提交,但是別的事務可以讀到這個改變.這是很不安全的。允許任務讀取數據庫中未提交的數據更改,也稱為臟讀。 
2、提交讀(Read Committed) 
   直譯就是"讀提交",可防止臟讀,意思就是語句提交以后即執行了COMMIT以后別的事務就能讀到這個改變. 只能讀取到已經提交的數據。Oracle等多數數據庫默認都是該級別 
3、可重復讀(Repeatable Read): 
   直譯就是"可以重復讀",這是說在同一個事務里面先后執行同一個查詢語句的時候,得到的結果是一樣的.在同一個事務內的查詢都是事務開始時刻一致的,InnoDB默認級別。在SQL標准中,該隔離級別消除了不可重復讀,但是還存在幻象讀 
4、串行讀(Serializable) 
   直譯就是"序列化",意思是說這個事務執行的時候不允許別的事務並發執行. 完全串行化的讀,每次讀都需要獲得表級共享鎖,讀寫相互都會阻塞
 
四,隔離級別對事務並發的控制 
下表是各隔離級別對各種異常的控制能力:


丟失更新    臟讀    非重復讀    二類丟失更新(覆蓋更新)    幻像讀
未提交讀     Y    Y    Y    Y    Y
提交讀     N    N    Y    Y    Y
可重復讀     N    N    N    N    Y
串行讀     N    N    N    N    N
答案

 

5、請用python編寫函數find_string,從文本中搜索並打印內容,要求支持通配符星號和問號。

例子:

>>>find_string('hello\nworld\n','wor')

['wor']

>>>find_string('hello\nworld\n','l*d')

['ld']

>>>find_string('hello\nworld\n','o?')

['or']

 

6、請為find_string編寫單元測試

7、已有一個字典列表,如下:

li = [
    {'id': '1.1', 'content': "14"},
    {'id': '1.2', 'content': "15"},
    {'id': '1.3', 'content': "16"},
    {'id': '1.4', 'content': "17"},
    {'id': '1.5', 'content': "18"},
]

請寫一個類:

abc = x()
>>abc['1.1']
14
class x(UserDict):

    def __init__(self):
        super().__init__()
        for dic in li:
            # print(dic)
            self.data.update({dic['id']:dic['content']})

abc = x()
print(abc['1.1'])
答案

 8、如何快速對學生的成績進行評級:(源自Fluent Python)

  60分以下評為F

  60-70評為D

  ...

  90分以上為A

import bisect
import sys


def grade(score, breakpoint=[60, 70, 80, 90], grades = 'FDCBA'):
    i = bisect.bisect(breakpoint, score)
    return grades[i]

if __name__ == '__main__':
    level = grade(64)
    print(level)
答案

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM