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)
