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 初始化多维数组代码
Sep 06 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
Python http接口自动化测试框架实现方法示例
Dec 06 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
决策树剪枝算法的python实现方法详解
Sep 18 Python
Python缓存技术实现过程详解
Sep 25 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
matplotlib图例legend语法及设置的方法
Jul 28 Python
如何利用Python 进行边缘检测
Oct 14 Python
Python reversed反转序列并生成可迭代对象
Oct 22 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
Python实现Appium端口检测与释放的实现
Dec 31 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中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
2016/11/29 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
python冒泡排序算法的实现代码
2013/11/21 Python
使用python编写监听端
2018/04/12 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
python中scikit-learn机器代码实例
2018/08/05 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
高二美术教学反思
2014/01/14 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
委托书怎样写
2014/08/30 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
预备党员转正材料
2014/12/19 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
Java 数组内置函数toArray详解
2021/06/28 Java/Android
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android