18个Python脚本可加速你的编码速度(提示和技巧)


Posted in Python onOctober 17, 2019

在本文中,我们向您介绍一些提示和技巧,以帮助您更快地编写代码

Python的可读性和设计简单性是其广受欢迎的两个主要原因。

一些常见的Python技巧可以帮助你提高编码速度。在您的日常编码练习中,以下技巧将非常有用。

1.在字符串中查找唯一元素

以下代码段可用于查找字符串中的所有唯一元素。我们使用集合中所有元素都是唯一的属性。

my_string = "aavvccccddddeee" 
# 将字符串转换为集合 
temp_set = set(my_string) 
# 使用join将拼接设置为字符串 
new_string = ''.join(temp_set) 
print(new_string)

2.首字母大写

以下代码段可用于将字符串转换为标题大小写。这是使用title()字符串类的方法完成的。

my_string = “My Name Is Chaitanya Baweja” 
#使用string类的title()函数 
new_string = my_string.title() 
print(new_string) 
#output 
My Name Is Chaitanya Baweja

3.反转字符串

以下代码段使用Python切片操作来反转字符串。

#使用切片反转字符串 
my_string = "ABCDE" 
reversed_string = my_string [::-1] 
print(reversed_string) 
#output

4. n次打印字符串或列表

您可以对字符串或列表使用乘法(*)。这使我们可以将它们任意倍增。

n = 3 #重复次数 
my_string = "ABCD" 
my_list = [ 1,2,3 ] 
print(my_string * n) 
#abcdabcdabcd 
print(my_list * n) 
# [1,2,3,1,2,3,1,2,3]

一个有趣的用例是定义一个具有恒定值的列表-假设为零。

n = 4 
my_list = [0] * n #n表示所需列表的长度 
#[0,0,0,0]

5.将字符串列表组合成单个字符串

join()方法将作为参数传递的字符串列表组合为单个字符串。在我们的情况下,我们使用逗号分隔符将它们分开。

list_of_strings = ['My', 'name', 'is', 'haha', 'lulu'] 
# 使用","连接字符串 
print(','.join(list_of_strings)) 
# Output 
# My,name,is,haha,lulu

6.在两个变量之间交换值

Python使在两个变量之间交换值而不使用另一个变量变得非常简单。

a = 1 
b = 2 
a, b = b, a 
print(a) # 2 
print(b) # 1

7.将字符串拆分为子字符串列表

我们可以使用字符串类中的.split()方法将字符串拆分为子字符串列表。您还可以将要分割的分隔符作为参数传递。

string_1 = "My name is haha lulu" 
string_2 = "sample/ string 2" 
# default separator ' ' 
print(string_1.split()) 
# ['My', 'name', 'is', 'haha', 'lulu'] 
# defining separator as '/' 
print(string_2.split('/')) 
# ['sample', ' string 2']

8.List Comprehension

List Comprehension为我们提供了一种基于其他列表创建列表的优雅方法。以下代码段通过将旧列表的每个元素乘以2来创建新列表。

# Multiplying each element in a list by 2 
original_list = [1,2,3,4] 
new_list = [2*x for x in original_list] 
print(new_list) 
# [2,4,6,8]

您可以在此处了解更多信息。

9.检查给定的字符串是否是回文

我们已经讨论了如何反转字符串。因此回文式成为Python中一个简单的程序。

my_string = "abcba" 
if my_string == my_string[::-1]: 
 print("palindrome") 
else: 
 print("not palindrome") 
# Output 
# palindrome

10.使用枚举获取索引/值对

以下脚本使用枚举遍历列表中的值及其索引。

my_list = ['a', 'b', 'c', 'd', 'e'] 
for index, value in enumerate(my_list): 
 print('{0}: {1}'.format(index, value)) 
# 0: a 
# 1: b 
# 2: c 
# 3: d 
# 4: e

11.查找两个字符串是否为字母

Counter类的一个有趣应用是查找字谜。

字谜是通过重新排列不同单词或短语的字母而形成的单词或短语。

如果Counter两个字符串的对象相等,那么它们就是字谜。

from collections import Counter 
str_1, str_2, str_3 = "acbde", "abced", "abcda" 
cnt_1, cnt_2, cnt_3 = Counter(str_1), Counter(str_2), Counter(str_3) 
if cnt_1 == cnt_2: 
 print('1 and 2 anagram') 
if cnt_1 == cnt_3: 
 print('1 and 3 anagram')

12.使用try-except-else块

使用try / except块可以轻松完成Python中的错误处理。当try块中没有引发异常时,它将正常运行。如果您需要运行某些程序而不考虑异常,请使用finally,保证资源的释放,和最终逻辑的执行。

try: 
 print(a/b) 
 # exception raised when b is 0 
except ZeroDivisionError: 
 print("division by zero") 
else: 
 print("no exceptions raised") 
finally: 
 print("Run this always")

13.列表中元素的频率

这样做有多种方法,但我最喜欢的是使用Python Counter类。

Python计数器跟踪容器中每个元素的频率。Counter()返回一个字典,其中元素作为键,而频率作为值。

我们还使用该most_common()函数来获取most_frequent列表中的元素。

# finding frequency of each element in a list 
from collections import Counter 
my_list = ['a','a','b','b','b','c','d','d','d','d','d'] 
count = Counter(my_list) # defining a counter object 
print(count) # Of all elements 
# Counter({'d': 5, 'b': 3, 'a': 2, 'c': 1}) 
print(count['b']) # of individual element 
# 3 
print(count.most_common(1)) # most frequent element 
# [('d', 5)]

14.检查对象的内存使用情况

以下脚本可用于检查对象的内存使用情况。在此处了解更多信息。

import sys 
num = 21 
print(sys.getsizeof(num)) 
# In Python 2, 24 
# In Python 3, 28

15.从列表中取样

以下代码段 n使用该random库从给定列表中生成了许多随机样本。

随机导入 
my_list = [ 'a','b','c','d','e' ] 
num_samples = 2 
样本= 随机 .sample(my_list,num_samples) 
 打印(样本) 
#[ 'a','e' ] 这将具有任意2个 随机值

16.统计代码执行所需的时间

以下代码段使用该time库来计算执行一段代码所花费的时间。

import time 
start_time = time.time() 
# Code to check follows 
a, b = 1,2 
c = a+ b 
# Code to check ends 
end_time = time.time() 
time_taken_in_micro = (end_time- start_time)*(10**6) 
print(" Time taken in micro_seconds: {0} ms").format(time_taken_in_micro)

17.展平列表清单

有时不确定列表的嵌套深度,只希望将所有元素放在一个平面列表中。应该这样做:

from iteration_utilities import deepflatten 
# if you only have one depth nested_list, use this 
def flatten(l): 
 return [item for sublist in l for item in sublist] 
l = [[1,2,3],[3]] 
print(flatten(l)) 
# [1, 2, 3, 3] 
# if you don't know how deep the list is nested 
l = [[1,2,3],[4,[5],[6,7]],[8,[9,[10]]]] 
print(list(deepflatten(l, depth=3))) 
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

18.合并两个字典

在Python 2中,我们使用的update()方法来合并两个字典。Python 3.5使这一过程变得更加简单。在下面给出的脚本中,两个字典被合并。在有交集的情况下,使用第二个字典中的值。

dict_1 = {'apple': 9, 'banana': 6} 
dict_2 = {'banana': 4, 'orange': 8} 
combined_dict = {**dict_1, **dict_2} 
print(combined_dict) 
# Output 
# {'apple': 9, 'banana': 4, 'orange': 8}

总结

以上所述是小编给大家介绍的18个Python脚本可加速你的编码速度,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python实现类继承实例
Jul 04 Python
python使用calendar输出指定年份全年日历的方法
Apr 04 Python
常见的python正则用法实例讲解
Jun 21 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
Jun 11 Python
Python列表操作方法详解
Feb 09 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
python中tab键是什么意思
Jun 18 Python
python cv2.resize函数high和width注意事项说明
Jul 05 Python
Django如何批量创建Model
Sep 01 Python
基于python实现监听Rabbitmq系统日志代码示例
Nov 28 Python
如何理解python接口自动化之logging日志模块
Jun 15 Python
python图像处理 PIL Image操作实例
Apr 09 Python
python numpy中cumsum的用法详解
Oct 17 #Python
python hashlib加密实现代码
Oct 17 #Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 #Python
python模块常用用法实例详解
Oct 17 #Python
Python 使用元类type创建类对象常见应用详解
Oct 17 #Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
Oct 17 #Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
Oct 17 #Python
You might like
将php数组输出html表格的方法
2014/02/24 PHP
php去除换行(回车换行)的三种方法
2014/03/26 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
EasyUI Tree树组件无限循环的解决方法
2017/09/27 Javascript
JS二分查找算法详解
2017/11/01 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
javaScript实现游戏倒计时功能
2018/11/17 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
跟老齐学Python之开始真正编程
2014/09/12 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
在python中pandas的series合并方法
2018/11/12 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
生物科学专业个人求职信范文
2013/12/07 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
军训感想500字
2014/02/20 职场文书
艺术学院毕业生自我评价
2014/03/02 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
后备干部推荐材料
2014/12/24 职场文书
居安思危观后感
2015/06/11 职场文书
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
浅谈Redis的事件驱动模型
2022/05/30 Redis