1. 根據分數判定等級
用if條件判斷感覺很low, 使用bisect瞬間就高大上了(使用二分法來排序)
import bisect as bs
score = [60, 70, 80, 90]
f = "edcba"
level = lambda x: f[bs.bisect(score, x)]
print(level(46), level(69), level(76), level(80), level(92))
說明:使用bisect模組的函式前先確保操作的列表是已排序的,有興趣可以研究下bisect_left和bisect_right
2.寫乙個字串轉數字的函式類似int
from functools import reduce
num =
def str2int(s):
return reduce(lambda x, y: x*10+y if y>=0 else x, map(lambda x: num[x] if x in num else -1, s))
print(str2int("12456"))
print(str2int("12e3456e")) # 需要數字開頭
3. 楊輝三角def ********s(num):
def up():
n = [1]
while true:
yield n
n = [1]+[n[n]+n[n-1] for n in range(1, len(n))]+[1]
for t in up():
print(t)
num -= 1
if not num:break
********s(9)
4. *將迭代器解壓出來
由於python3版本為了節約記憶體很多函式返回值都是生成器,如常用的map, filter等
單有時候我們想要直接獲得結果,此時就可以使用*來獲得
用*解析出的是多個物件,可以傳遞給不定長引數,不能做可迭代物件用for 遍歷
tmp = ['1', '2', '3']
print(map(int, tmp))
print(*map(int, tmp))
輸出
1 2 3
例項
import string
tmp = ['1', '2', '3']
def get(*args):
for i in (args):
print(i, type(i))
get(*map(int, tmp))
get(*string.ascii_lowercase[:3])
輸出
1 2 3 a b c
5. rf字串
f 字串前面可以直接加r組成r字串
import re
src = '12+3*5/2'
tmp =
flags = rf""
print(flags, re.findall(flags, src), re.split(flags, src))
輸出
[*+-/] ['+', '*', '/'] ['12', '3', '5', '2']
注意符號循序要按ascii順序先後,否則會報錯:
sre_constants.error: bad character range ± at position 1*
6. or取代if else
python中使用if else來替代其他語言的?:三目運算,
但如果我們只是判斷是否是空值(none, false, 0, 0.0, 0l, 『』, (), , {}),我們只需要使用or即可實現,省略了if else的判斷
示例:b和c是相同的效果
a = input("輸入:")
b = a if a else "none"
c = a or "none"
print(b, c)
7. 字典get預設值的妙用
如下面的例子是統計單詞數量, 使用get時設定預設值,可以省去判斷get再做新增的麻煩
words = ["shadow", "eason", "go", "shadow", "eason", "go", "", "shu"]
counts =
for word in words:
counts[word]=counts.get(word,0)+1
print(counts)
Python小知識點
1.時間戳 從1970年到現在的秒數 time2 time.time print time2 date9 datetime.datetime.now print date9.timestamp 上面是兩種用到時間戳的 stamp 郵戳。timestamp 時間戳,時間線。2.執行緒休眠 爬蟲 獲取對...
Python小知識點
1.預設引數 必須放在引數列表的隊尾 普通形參必須放在預設引數的前面 def test a,b 3 passtest test 2.函式引數可以為任意型別 testb testa 3.args返回的是乙個元組 4.map函式裡面需要兩個值 值1 必須是函式 值2 序列 容器 作用 將序列裡面的每個元...
python 小知識點
python strip 方法用於移除字串頭尾指定的字元 預設為空格或換行符 或字串行。注意 該方法只能刪除開頭或是結尾的字元,不能刪除中間部分的字元。strip 方法語法 str.strip chars 返回移除字串頭尾指定的字元生成的新字串。以下例項展示了strip 函式的使用方法 以上例項輸出...