-
检查重复元素
-
def all_unique(lst): return len(lst) == len(set(lst))
-
-
变位词
-
# 检测两个字符串是否为变位词 from collections import Counter def anagram(first, second): return Counter(first) == Counter(second)
-
-
检查内存使用情况
-
import sys variable = 30 print(sys.getsizeof(variable)) # 计算当前代码所使用的内存和时间 import os import time import psutil from contextlib import contextmanager @contextmanager def timer_memory(name): t0 = time.time() yield print(f"Memory: {(psutil.Process(os.getpid()).memory_info().rss/2**30):.02f}GB") print(f"{name} done in {time.time-t0:.0f}s") # 使用方法 with timer_memory('Reading data'): ''' code '''
-
-
字节大小计算
-
def byte_size(string): return (len(string.encode(utf-8)))
-
-
首字母大写
-
s = '' s.title()
-
-
分块
-
# 数据分块,将列表分为指定大小 import math def chunk(lst, size): return list(map(lambda x: lst[x*size:x*size+size], list(range(0, math.ceil(len(lst)/size)))))
-
-
压缩
-
# 使用filter删除列表中的错误值或者指定值 def compact(lst): return list(filter(bool, lst))
-
-
间隔数
-
# 转换二维数组 arr = [[1,2],[3,4],[5,6]] transposed = zip(*arr) # --> [(1,3,5), (2,4,6)]
-
-
计算字符串中元音字母数
-
import re def count_vowels(strs): return len(len(re.findall(r[aeiou], strs, re.IGNORECASE)))
-
-
平面化
-
# 将列表中的列表去除 def spread(arg): ret = [] for i in arg: ret.extend(i) if isinstance(i, list) else ret.append(i) return ret def deep_flatten(lst): res = [] res.extend(spread(list(map(lambda x:deep_flatten(x) if type(x)==list else x, lst)))) return res # [1, [2,3], [[4],[5]], 6] --> [1,2,3,4,5,6]
-
-
差异
-
# 返回两个迭代器中差异的值 def difference(a, b): set_a = set(a) set_b = set(b) comparison = set_a.difference(set_b) return list(comparison)
-
-
寻找差异
-
def difference_by(a, b, fn): b = set(map(fn, b)) return [item for item in a if fn(item) not in b]
-
-
合并两个字典
-
# 方法1 def merge_two_dicts(a, b): c = a.copy() c.update(b) return c # 方法2, python>=3.5 def merge_two_dicts(a, b): return {**a, **b}
-
-
将列表转化为字典
-
def to_dict(keys:list, values:list): return dict(zip(keys, values))
-
-
Try else 指令
-
try: c = 2*3 except TypeError: print('An exception was raised !') else: print('no exception !')
-
-
返回列表中重复出现最多的元素
-
def most_frequent(lst): return max(set(lst), key=lst.count)
-
-
回文
-
def palindrome(string): import re s = re.sub([W_], , string.lower()) return s == s[::-1]
-
-
简单计算器
-
import operator action = {'+': operator.add, '-': operator.sub, '/': operator.truediv, '*': operator.mul, '**': pow} print(action['-'](50, 25))
-
python实用小技巧
最新推荐文章于 2024-07-23 14:36:35 发布