自己從大二開始做leetcode常用的幾種python函式,做題時經常用到:
1.enumerate() 函式
enumerate(sequence, [start=0])
-
sequence -- 一個序列、迭代器或其他支持迭代物件,
-
start -- 下標起始位置,
回傳 enumerate(列舉) 物件,
以下展示了使用 enumerate() 方法的實體:
seasons = ['Spring', 'Summer', 'Fall', 'Winter'] ? list(enumerate(seasons)) ? >>>>[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] ? list(enumerate(seasons, start=1)) ? >>>># 下標從 1 開始 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')] ?
2.index()和find()函式
index() 方法檢測字串(串列)中是否包含子字串 str ,如果指定 beg(開始) 和 end(結束) 范圍,則檢查是否包含在指定范圍內,該方法與 python find()方法一樣,只不過如果str不在 string中會報一個例外,
index一般用來檢測串列,find只能檢測字串
index()方法語法: #find()一樣
str.index(str, beg=0, end=len(string))
-
str -- 指定檢索的字串
-
beg -- 開始索引,默認為0,
-
end -- 結束索引,默認為字串的長度,
如果包含子字串回傳開始的索引值,否則拋出例外,
以下實體展示了index()方法的實體:
1 str1 = "this is string example....wow!!!"; 2 str2 = "exam"; 3 4 print str1.index(str2); 5 print str1.index(str2, 10); #10代表從10開始 6 print str1.index(str2, 40);
以上實體輸出結果如下:
1 15 2 15 3 Traceback (most recent call last): 4 File "test.py", line 8, in 5 print str1.index(str2, 40); 6 ValueError: substring not found
3.ord()和chr()字母排序
ddict = {chr(i): [] for i in range(ord('a'), ord('z') + 1)}
ord()函式主要用來回傳對應字符的ascii碼,chr()主要用來表示ascii碼對應的字符他的輸入時數字,可以用十進制,也可以用十六進制,
例如:
1 print ord('a) 2 #97 3 4 print chr(97) 5 #a 6 7 print chr(0x61) 8 #a
4.zip()函式
zip 語法:
zip([iterable, ...])
引數說明:
-
iterabl -- 一個或多個迭代器;
回傳一個物件,
以下實體展示了 zip 的使用方法:
1 a = [1,2,3] 2 b = [4,5,6] 3 c = [4,5,6,7,8] 4 ? 5 zipped = zip(a,b) # 回傳一個物件 6 ? 7 zipped 8 <zip object at 0x103abc288> 9 ? 10 list(zipped) # list() 轉換為串列 11 [(1, 4), (2, 5), (3, 6)] 12 ? 13 list(zip(a,c)) # 元素個數與最短的串列一致 14 [(1, 4), (2, 5), (3, 6)] 15 ? 16 a1, a2 = zip(*zip(a,b)) #與zip 相反,zip(*) 可理解為解壓,回傳二維矩陣式 17 ? 18 list(a1) 19 [1, 2, 3] 20 ? 21 list(a2) 22 [4, 5, 6]
zip()取最短元素長度
zip_longest()取最長元素長度
5.sort()函式
sort()函式語法:
sort(key=None, reverse=False)
key 可指定一些規則
reverse 默認值是False,可以給它賦值成True,那就是反向排序
有意思的是,sort不僅可以給陣列,字典排序,而且sort的key中可以有多個值,重要性按從前到后排序
舉個栗子:
1 nums = [[7,7],[1,2],[9,7],[7,3],[3,10],[9,8],[8,10],[4,3],[1,5],[1,5]] 2 3 nums.sort(key = lambda x: (x[0], -x[1])) #第一個數從大到小,如果一樣,第二個數從小到大 4 5 >>>>[[1, 5], [1, 5], [1, 2], [3, 10], [4, 3], [7, 7], [7, 3], [8, 10], [9, 8], [9, 7]]
6.Counter()函式
c = Counter(items)
1 from collections import Counter 2 colors = ['red', 'blue', 'red', 'green', 'blue', 'blue'] 3 c = Counter(colors) 4 print (dict(c))
(1)從Collections集合模塊中引入集合類Counter
(2)Counter(colors)可以列印出陣列colors中每個元素出現的次數
(3)Counter(a).most_common(2)可以列印出陣列中出現次數最多的元素,引數2表示的含義是:輸出幾個出現次數最多的元素,
非常方便統計次數的題目
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/297716.html
標籤:Python
上一篇:四十七、MySQL資料庫4
