Python 日常开发效率提升秘籍:掌握这些函数,让你事半功倍!
Python 以其简洁的语法和强大的标准库而闻名,为开发者提供了极大的便利。在日常开发中,合理利用 Python 的标准库和第三方库中的高效函数,可以显著提高编码效率和程序性能。本文将介绍一些常用的 Python 包及其函数,助你在编程之路上事半功倍。
一、统计列表中每个元素出现的次数
有如下列表:_list = [1, 2, 2, 3, 4, 4]
# 方法1:
from collections import Counter
num_count = dict(Counter(_list))
# 打印结果
# print(num_count)
# {1: 1, 2: 2, 3: 1, 4: 2}
# 方法2:
import pandas as pd
num_count = dict(pd.value_counts(_list))
# print(num_count)
# {1: 1, 2: 2, 3: 1, 4: 2}
二、python 合并字典,相同 key 的 value 相加
A = {"a": 1, "b": 2, "c": 3}
B = {"a": 2, "d": 5}
res = dict(Counter(A) + Counter(B))
# print(res)
# {'b': 2, 'c': 3, 'a': 3, 'd': 5}
三、如果将'[1,2,3,4]'字符串类型转换成[1,2,3,4]列表类型
str_list = '[1,2,3,4]' # type: str
eval(str_list) # type: list
四、字节类型十六进制转换整数
byte = b'\x01'
res = int.from_bytes(byte, byteorder='big')
# print(res)
# 1
五、for循环搭配else的使用
使用for...else...的场景是,当迭代的对象迭代完并为空时,位于else的子句将执行。但是需要注意如下的问题。对于如下代码:
for i in range(5):
if i == 3:
print('found i = %s' % i)
else:
print('not found ...')
我们期望的结果是为:
found i = 3
但实际输出的是
found i = 3
not found ...
如果在for循环中含有break时则直接终止循环,并不会执行else子句。所以正确的写法应该为:
for i in range(5):
if i == 3:
print('found i = %s' % i)
break
else:
print('not found ...')
六、判断字符串的后缀是否符合多个条件
# 判断文件的后缀名是否为.txt/.csv/.xlsx
file_name = 'aaa.txt'
file_name.endswith(('.txt', '.csv', '.xlsx'))
七、dict类型转DataFrame
dict -> DataFrame,使用from_dict方法 DataFrame -> dict,使用to_dict方法
my_dic = {'a': [1, 3, 4], 'b': [2, 3, 4]}
pd.DataFrame.from_dict(my_dic, orient='index')
八、python中动态定义变量名
利用命名空间动态赋值
在Python的命名空间中,将变量名与值存储在字典中,可以通过locals(),globals()函数分别获取局部命名空间和全局命名空间。例:
# 定义变量names,使用local局部命名
names = locals()
# 则结果会定义两个变量n1、n2
for i in range(2):
names['n' + str(i)] = i
# 调用动态变量,结果都返回1
# 方法一:使用exec函数
exec('print(n1)')
# 方法二:使用.get方法
print(names.get('n1'))
九、屏闭warning
import warnings
# 屏闭sklearn模块中的DeprecationWarning
warnings.filterwarnings(module='sklearn*', action='ignore', category=DeprecationWarning)