5个Python实用小技巧

2021-04-10 16:15:19 浏览数 (5)

本篇选了 Python 的五个实用代码小技巧,感兴趣的同学可以进行学习。

1、List:all_equal

实现:检验列表的所有元素是否一样

tips:实用 [1:] 和 [:-1] 来比较列表的所有元素

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

实例:

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

2、List:all_unique

实现:列表所有值如果是唯一,返回 true,否则 false

tips:在列表使用集合 set( ) 去重,用结果比较原列表长度

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

实例:

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

实现:列表值进行分组,在 filter 元素如果是 true,那么对应元素属于第一个组,否则属于第二个组

tips:列表推导式和 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]
  ]

实例:

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

4、List:difference

实现:返回两个 iterables 间的差异

tips:创建 b 的集合,用 a 的列表推导式保留不在 _b 中的元素

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

实例:

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

5、List:flatten

实现:一次性的整合列表

tips:使用嵌套的列表提取子列表的每个值

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

实例:

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

以上就是小编为您带来的关于5个Python实用小技巧 的全部内容


1 人点赞