一些实验中用过的python函数/方法(持续更新)
衡量运行时间
很多时候你需要计算某段代码执行所需的时间,可以使用 time
模块来实现这个功能。
import time
startTime = time.time()
# write your code or functions calls
endTime = time.time()
totalTime = endTime - startTime
print("Total time required to execute code is =", totalTime)
# output
Total time required to execute code is = 4.76837158203125e-07
获取两个列表之间的差异
不使用循环,找出两个列表的差异,可以使用集合的 symmetric_difference
方法。
list1 = ['Scott', 'Eric', 'Kelly', 'Emma', 'Smith']
list2 = ['Scott', 'Eric', 'Kelly']
set1 = set(list1)
set2 = set(list2)
list3 = list(set1.symmetric_difference(set2))
print(list3)
# output
['Emma', 'Smith']
翻转字符串和列表
a = "zhihu"
print("Reverse is", a[::-1])
List = ["Shriya", "Lavina", "Sampreeti" ]
List.reverse()
print(List)
# output
Reverse is uhihz
['Sampreeti', 'Lavina', 'Shriya']
连接列表中的多个字符串
需要调用字符串的 join
方法,还可以设置间隔符,下面为间隔符为空格的例子。
a = ["Python", "Is", "Great"]
print(" ".join(a))
# output
Python Is Great
同时使用多个比较运算符
在 C 中不能连续进行大小比较,在 Python 中就可以。
n = 10
result = 1 < n < 20
print(result)
result = 1 < n <= 9
print(result)
# output
True
False
打印导入模块的文件路径
import os
import socket
print(os)
print(socket)
# output
<module 'os' from 'D:\\Users\\xxx\\miniconda3\\envs\\xin\\lib\\os.py'>
<module 'socket' from 'D:\\Users\\xxx\\miniconda3\\envs\\xin\\lib\\socket.py'>
二维列表转一维列表
只需使用 Itertools
一行代码,即可将嵌套列表转换为一个列表。
import itertools
a = [[1, 2], [3, 4], [5, 6]]
print(list(itertools.chain.from_iterable(a)))
# output
[1, 2, 3, 4, 5, 6]
Lambda 匿名函数用法
要声明一些小功能,但不使用常规的声明方式,可以用使用 lambda
。 python 中的 lambda 关键字为声明匿名函数提供了快捷方式。
subtract = lambda x, y : x-y
subtract(5, 4)
# 可结合map reduce使用
列表中每个元素出现次数
Counter(list).most_common(n)
根据列表 / 字符串中每个元素出现次数,降序返回列表 / 字符串中的前 n 个元素,其中 n 是指定的数字。在元组中返回各个元素及其出现的次数。
# Code to find top 3 elements and their counts
# using most_common
from collections import Counter
arr = [1, 3, 4, 1, 2, 1, 1, 3, 4, 3, 5, 1, 2, 5, 3, 4, 5]
counter = Counter(arr)
top_three = counter.most_common(3)
print(top_three)
# output
[(1, 5), (3, 4), (4, 3)]
输出结果为个数最多的 3 个数字,其中 1 出现 5 次,3 出现 4 次,4 出现 3 次。
找到列表中最常出现的值
test = [1, 2, 3, 4, 2, 2, 3, 1, 4, 4, 4]
print(max(set(test), key = test.count))
# max(test, key = test.count) 也可以实现同样功能,但列表数据量大时会变慢
# s.count(x) x在s中出现的总次数
# output
4
检查对象的内存使用情况
当你要使用任何数据结构(例如列表,字典或任何对象)来存储值或记录时,可以检查数据结构使用了多少内存。
使用 sys
模块中定义的 sys.getsizeof
函数获取内置对象使用的内存,返回对象的大小(以字节为单位)。
import sys
x = 1
print(sys.getsizeof(x))
# output
28
注意:sys.getsizeof
不会为第三方对象或用户定义的对象返回正确的值。
字符串乘法拼接
n = 3
a = "Python"
print(a * n)
# output
PythonPythonPython
将多个列表同一位置元素zip在一起
当你需要连接许多迭代器对象(如列表)以获取单个列表时,可以使用 zip
函数,结果显示每个新列表每个元素,是所有迭代器对象同一位置值的元组。
Year = (1999, 2003, 2011, 2017)
Month = ("Mar", "Jun", "Jan", "Dec")
Day = (11,21,13,5)
print(zip(Year, Month, Day))
# output
[(1999, 'Mar', 11), (2003, 'Jun', 21), (2011, 'Jan', 13), (2017, 'Dec', 5)]
.get获取字典中key对应的值,不存在则返回指定值
通过 []
方式获取字典中的值时,如果键不存在则会报错,可以使用字典的 get
函数,指定键不存在时,可以返回的值。
比如字典中有键 ‘c’,则返回对应的值,否则返回 3。
d = {'a':1, 'b':2}
print(d.get('c', 3))
# output
3
for...else...
Python 中的 for 循环可以使用 else
关键字,如果在 for 循环中遇到 break
跳出循环,则不执行 else
子句,否则执行。
for i in range(5):
pass
else:
pass
{**d1, **d2}
合并字典
d1 = {'a': 1}
d2 = {'b': 2}
print({**d1, **d2})
# output
{'a': 1, 'b': 2}
求列表中前 n 个最大 / 最小的数字
使用 heapq
返回任何列表中的前 n 个最小 / 最大元素,这里 n 是指定的数字。
# Python code to find 3 largest and 4 smallest
# elements of a list.
import heapq
grades = [110, 25, 38, 49, 20, 95, 33, 87, 80, 90]
print(heapq.nlargest(3, grades))
print(heapq.nsmallest(4, grades))
# output
[110, 95, 90]
[20, 25, 33, 38]
输出的第一行给出列表等级中存在的最大数字中的 3 个。 同样,输出的第二行将打印出列表等级中存在的最小元素中的 4 个,此功能的另一个特点是它不会忽略重复值。
x, y = y, x
就地交换两个数字
x, y = 10, 20
print(x, y)
x, y = y, x
print(x, y)
# output
10 20
20 10
set(listNumbers)
从列表中删除重复项
listNumbers = [20, 22, 24, 26, 28, 28, 20, 30, 24]
print("Original= ", listNumbers)
listNumbers = list(set(listNumbers))
print("After removing duplicate= ", listNumbers)
# output
Original= [20, 22, 24, 26, 28, 28, 20, 30, 24]
After removing duplicate= [20, 22, 24, 26, 28, 30]
比较两个无序列表
假设你有两个包含相同元素的列表,但是两个列表中的元素顺序都不同。可以使用 collections.Counter()
方法进行判断,确定它们是否元素值都相同。
from collections import Counter
one = [33, 22, 11, 44, 55]
two = [22, 11, 44, 55, 33]
print("two lists are equal.", Counter(one) == Counter(two))
# output
two lists are equal.
检查列表中的所有元素是否唯一
def isUnique(item):
tempSet = set()
return not any(i in tempSet or tempSet.add(i) for i in item)
listOne = [123, 345, 456, 23, 567]
print("All List elemtnts are Unique ", isUnique(listOne))
listTwo = [123, 345, 567, 23, 567]
print("All List elemtnts are Unique ", isUnique(listTwo))
# output
All List elemtnts are Unique True
All List elemtnts are Unique False
字节转换为字符串
要将字节转换为字符串,可以对 bytes
对象进行解码以生成字符串。
byteVar = b"pynative"
str = str(byteVar.decode("utf-8"))
print("Byte to string is" , str )
# output
Byte to string is pynative
dict(zip(ItemId, names))
将两个列表转换成字典
例如你有两个列表,一个列表包含键,第二个列表包含对应的值,想将这两个列表转换为一个字典。可以使用 zip
函数来进行实现。
ItemId = [54, 65, 76]
names = ["Hard Disk", "Laptop", "RAM"]
itemDictionary = dict(zip(ItemId, names))
print(itemDictionary)
# output
{54: 'Hard Disk', 65: 'Laptop', 76: 'RAM'}
设置小数位格式
你要显示带有 2 个小数位的任何浮点数。 例如 73.4(73.40)和 288.5400(88.54)。
number= 88.2345
print('{0:.2f}'.format(number))
s.ljust(10, '-')
字符串左对齐填充到10
左对齐函数 ljust
和右对齐函数 rjust
,都需要指定字符串长度,以及想要填充的字符,不指定则默认填充空格。
s = "12345"
print(s.ljust(10, '-'))
print(s.rjust(10, '0'))
# output
12345-----
0000012345
https://www.zhihu.com/people/zhao-xiao-de-93/posts
一些实验中用过的python函数/方法(持续更新)的更多相关文章
- php常用函数(持续更新)
每一种编程语言在用的过程中都会发现有时候要一种特定需求的功能函数,结果没有内置这样的函数,这个时候就需要自己根据已有函数编写尽可能简单的函数,下面是我在做php相关工作时积累下的函数,会持续更新,您要 ...
- LeetCode 题目的 Python 实现(持续更新中)
Python-LeetCode 是一个使用 Python 语言解决 LeetCode 问题的代码库,库有以下几个方面需要注意: 所有题目都是 AC 的: 按照题目顺序,每 50 个放在一个目录下,方便 ...
- LeetCode python实现题解(持续更新)
目录 LeetCode Python实现算法简介 0001 两数之和 0002 两数相加 0003 无重复字符的最长子串 0004 寻找两个有序数组的中位数 0005 最长回文子串 0006 Z字型变 ...
- 2.Python函数/方法(method/function)详解
1.什么是函数 它是一段功能代码,理解为一种功能行为,在内存中有空间区域,函数需要被调用才能执行(通过函数名来调用): 好处: 1).提高代码的复用性 2).提升代码的阅读性 3).增加代码的扩展性 ...
- SQL Server 常用函数使用方法(持续更新)
之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行...嘿嘿... 直到今天用到substring()这个函数,C# 里面这个方法起始值是 0,而 SQL 里面起始值是 1.傻傻分不清楚. ...
- Python 函数运行时更新
Python 动态修改(运行时更新) 特性 实现函数运行时动态修改(开发的时候,非线上) 支持协程(tornado等) 兼容 python2, python3 安装 pip install realt ...
- python中魔法方法(持续更新)
1.对于一个自定义的类,如果实现了 __call__ 方法,那么该类的实例对象的行为就是一个函数,是一个可以被调用(callable)的对象.例如: class Add: def __init__(s ...
- Python函数汇总(陆续更新中...)
range的用法 函数原型:range(start, end, scan): 参数含义: start:计数从start开始.默认是从0开始.例如range(5)等价于range(0, 5); end: ...
- python笔记(持续更新)
1.编译python遇到下面的编码问题: SyntaxError: Non-ASCII character '\xe9' in file E:\projects\learn.py on lin ...
随机推荐
- jdbc连接MySQL数据库+简单实例(普通JDBC方法实现和连接池方式实现)
jdbc连接数据库 总结内容 1. 基本概念 jdbc的概念 2. 数据库连接 数据库的连接 DAO层思想 重构设计 3. 事务 概念 事务的ACID属性 事务的操作 4. 连接池 为什么要使用连接池 ...
- 通过CSS给图像设置圆角边框
<html> <style> .smaller-image{ border-radius: 50%; width: 100px; } </style> <bo ...
- scss使用方法以及相关内容
我们平时都称之为 Sass,其实可分成sass和scss, 其中Sass 是以严格的缩进式语法规则来书写,不带大括号({})和分号(;),以".sass"后缀为扩展名:而 SCSS ...
- Python程序的流程
1 """ 2 python程序的流程 3 """ 4 # ------------- 分支结构---------------- 5 # i ...
- centos7.3 安装oracle 详细过程
centos7.3安装oracle详细过程1.下载Oracle安装包:linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2 ...
- 解决k8s故障,eureka处于unknow的问题
//pod Unknown状态,开始强制删除eureka-server-node-0,eureka-server-node-1等,强制删除不了 [root@fp158 sts]# kubectl de ...
- OpenHarmony 3.1 Beta版本关键特性解析——探秘隐式查询
(以下内容来自开发者分享,不代表 OpenHarmony 项目群工作委员会观点) 徐浩 隐式查询是 OpenAtom OpenHarmony(以下简称"OpenHarmony" ...
- CTF中的一些图形密码
1.传统猪圈密码 猪圈密码又称为亦称朱高密码.共济会暗号.共济会密码或共济会员密码:是一种以特定符号来替换字母的加密方式 在线解密网址:http://moersima.00cha.net/zhuqua ...
- C++ 类成员指针
C++的类成员指针是一种奇葩的指针. 假设现在我们要表示一个三维的点,现在有两种定义方式: struct point1{ int x, y, z; }; struct point2{ int c[3] ...
- C#中检查null的语法糖
今天看到已经更新了devblogs,新增的C# 11的!!(用于检查null的语法)经过非常长的讨论,最后取消了.然后我又想起来null检查,这个可以说一说. 函数参数null检查 传统写法 写一个函 ...