编写 Python 脚本来解决各种小问题是我每天的乐趣之一。我总是喜欢找出一个问题的 Pythonic 答案,也喜欢当我不知道解决办法时,可以很快地在 stack overflow 查找,并发现一些非常棒的解决方法。
在本文中,我将分享9个 Python 脚本,这些在日常工作中常常用到。
from collections import defaultdict
import numpy as np
q = defaultdict(lambda: np.zeros(5))
# Example output
In [34]: q[0]
Out[34]: array([0., 0., 0., 0., 0.])
defaultdicts 最酷的一点是,它们永远不会引发 KeyError 。任何不存在的键都会获取默认工厂返回的值,在本例中,默认工厂是一个lambda函数,它为给定的任何键返回一个默认NumPy数组,其中包含5个零。
import re
pattern = re.compile(r”\d\d”)
print(re.search(pattern,"Let's find the number 23").group())
# or
print(re.findall(pattern, “Let's find the number 23”))[0]
# Outputs
'23'
'23'
Regex 对于许多 python 管道来说都是必须的,所以记住核心Regex方法总是很有帮助的。
list1 = [1,2,3,4,5]
list2 = [3,4,5]
print(list(set(list1) — set(list2)))
# or
print(set(lista1).difference(set(lista2)))
# Outputs
[1,2]
{
1,2}
在这里,集合有助于获得两个python列表之间的差异,这两个列表既是一个列表,也是一个集合。
from functools import partial
def multiply(x,y):
return x*y
dbl = partial(multiply,2)
print(dbl)
print(dbl(4))
# Outputs
functools.partial(<function multiply at 0x7f16be9941f0>, 2)
8
在这里,我们创建一个函数,它复制另一个函数,但使用的参数比原始函数少,这样您就可以使用它将该参数应用于多个不同的参数。
class SomeClass:
def __init__(self):
self.attr1 = 10
def attrfunction(self):
print("Attreibute")
hasattr(SomeClass, "attrfunction")
# Output
True
isinstance(1, int)
#Output
True
list1 = [1,2,3]
list(map(print, list1))
# Output
1
2
3
一种比循环打印列表内容更快更有效的方法。
from datetime import datetime
date = datetime.now()
print("-".join([str(date.year), str(date.month), str(date.day)])
# Output
'2021-6-15'
import numpy as np
x = np.arange(100)
y = np.arange(100,200,1)
idx = np.random.choice(np.arange(len(x)), 5, replace=False)
x_sample = x[idx]
y_sample = y[idx]
print(x_sample)
print(y_sample)
# Outputs
array([68, 87, 41, 16, 0])
array([168, 187, 141, 116, 100])
本文旨在分享一些解决日常 Python 脚本工作流程中可能遇到的一些基本Python问题。
欢迎转载、收藏本文,码字不易,有所收获点赞支持一下!
为方便进行学习交流,本号开通了技术交流群,添加方式如下:
直接添加小助手微信号:pythoner666,备注:CSDN+python,或者按照如下方式添加均可!