App下載

5個(gè)Python實(shí)用小技巧

猿友 2021-04-10 16:15:19 瀏覽數(shù) (2083)
反饋

本篇選了 Python 的五個(gè)實(shí)用代碼小技巧,感興趣的同學(xué)可以進(jìn)行學(xué)習(xí)。

1、List:all_equal

實(shí)現(xiàn):檢驗(yàn)列表的所有元素是否一樣

tips:實(shí)用 [1:] 和 [:-1] 來比較列表的所有元素

def all_equal(lst):
  return lst[1:] == lst[:-1]

實(shí)例:

all_equal([1, 2, 3, 4, 5, 6]) # False
all_equal([1, 1, 1, 1]) # True

2、List:all_unique

實(shí)現(xiàn):列表所有值如果是唯一,返回 true,否則 false

tips:在列表使用集合 set( ) 去重,用結(jié)果比較原列表長度

def all_unique(lst):
  return len(lst) == len(set(lst))

實(shí)例:

x = [1,2,3,4,5,6]
y = [1,2,2,3,4,5]
all_unique(x) # True
all_unique(y) # False

3、List:bifurcate

實(shí)現(xiàn):列表值進(jìn)行分組,在 filter 元素如果是 true,那么對應(yīng)元素屬于第一個(gè)組,否則屬于第二個(gè)組

tips:列表推導(dǎo)式和 enumerate( ) 基于 filter 元素到各組

def bifurcate(lst, filter):
  return [
    [x for i,x in enumerate(lst) if filter[i] == True],
    [x for i,x in enumerate(lst) if filter[i] == False]
  ]

實(shí)例:

bifurcate(['beep', 'boop', 'foo', 'bar'], [True, True, False, True])
# [ ['beep', 'boop', 'bar'], ['foo'] ]

4、List:difference

實(shí)現(xiàn):返回兩個(gè) iterables 間的差異

tips:創(chuàng)建 b 的集合,用 a 的列表推導(dǎo)式保留不在 _b 中的元素

def difference(a, b):
  _b = set(b)
  return [item for item in a if item not in _b]

實(shí)例:

difference([1, 2, 3], [1, 2, 4]) # [3]

5、List:flatten

實(shí)現(xiàn):一次性的整合列表

tips:使用嵌套的列表提取子列表的每個(gè)值

def flatten(lst):
  return [x for y in lst for x in y]

實(shí)例:

flatten([[1,2,3,4],[5,6,7,8]]) # [1, 2, 3, 4, 5, 6, 7, 8]

以上就是小編為您帶來的關(guān)于5個(gè)Python實(shí)用小技巧 的全部內(nèi)容


0 人點(diǎn)贊