9个实用的Python技巧,让你编写出更快、更好的脚本!

编写 Python 脚本来解决各种小问题是我每天的乐趣之一。我总是喜欢找出一个问题的 Pythonic 答案,也喜欢当我不知道解决办法时,可以很快地在 stack overflow 查找,并发现一些非常棒的解决方法。

在本文中,我将分享9个 Python 脚本,这些在日常工作中常常用到。

1、使用defaultdict和lambda函数创建字典

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个零。

2、正则表达式基本配方

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方法总是很有帮助的。

3、使用集合从两个列表中获得差异

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列表之间的差异,这两个列表既是一个列表,也是一个集合。

4、partial 函数

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

在这里,我们创建一个函数,它复制另一个函数,但使用的参数比原始函数少,这样您就可以使用它将该参数应用于多个不同的参数。

5、使用 hasattr()内置方法获取object属性

class SomeClass:
    def __init__(self):
    self.attr1 = 10
    def attrfunction(self):
        print("Attreibute")
hasattr(SomeClass, "attrfunction")
# Output 
True

6、使用isinstance()检查变量是否为给定类型

isinstance(1, int)
#Output
True

7、使用map()打印列表中的数字

list1 = [1,2,3]
list(map(print, list1))
# Output
1
2
3

一种比循环打印列表内容更快更有效的方法。

8、使用.join()方法格式化datetime日期

from datetime import datetime
date = datetime.now()
print("-".join([str(date.year), str(date.month), str(date.day)])
# Output
'2021-6-15'

9、将两个具有相同规则的列表随机化

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,或者按照如下方式添加均可!
在这里插入图片描述

你可能感兴趣的:(python,列表,python,数据分析)