你需要掌握的20个Python常用技巧


Posted in Python onFebruary 28, 2022

Python的可读性和简单性是其广受欢迎的两大原因,本文介绍20个常用的Python技巧来提高代码的可读性,并能帮助你节省大量时间,下面的技巧将在你的日常编码练习中非常实用。

1.字符串反转

使用Python切片反转字符串:

# Reversing a string using slicing
 
my_string = "ABCDE"
reversed_string = my_string[::-1]
 
print(reversed_string)
 
# Output
# EDCBA

2.每个单词的第一个字母大写

使用title函数方法:

my_string = "my name is chaitanya baweja"
 
# using the title() function of string class
new_string = my_string.title()
 
print(new_string)
 
# Output
# My Name Is Chaitanya Baweja

3. 字符串查找唯一元素

使用集合的概念查找字符串的唯一元素:

my_string = "aavvccccddddeee"
 
# converting the string to a set
temp_set = set(my_string)
 
# stitching set into a string using join
new_string = ''.join(temp_set)
 
print(new_string)
 
# output
# cdvae

4.重复打印字符串和列表n次

你可以使用乘法符号(*)打印字符串或列表多次:

n = 3 # number of repetitions
 
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]

5.列表生成

# 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]

6.变量交换

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

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

使用.split()函数:

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

8.多个字符串组合为一个字符串

list_of_strings = ['My', 'name', 'is', 'Chaitanya', 'Baweja']
 
# Using join with the comma separator
print(','.join(list_of_strings))
 
# Output
# My,name,is,Chaitanya,Baweja

9.检测字符串是否为回文

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

10. 统计列表中元素的次数

# 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)]

11.判断两个字符串是否为Anagrams

Anagrams的含义为两个单词中,每个英文单词(不含大小写)出现的次数相同,使用Counter类判断两个字符串是否为Anagrams。

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')
 
# output
# 1 and 2 anagram

12. 使用try-except-else-block模块

except获取异常处理:

a, b = 1,0
 
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")
 
# output
# division by zero
# Run this always

13. 使用枚举函数得到key/value对

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

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

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

15.合并字典

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}

16.计算执行一段代码所花费的时间

使用time类计算运行一段代码所花费的时间:

import time
 
start_time = time.time()
# Code to check follows
for i in range(10**5):
    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)
 
# output
# 18770.217895507812

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. 列表采样

import random
 
my_list = ['a', 'b', 'c', 'd', 'e']
num_samples = 2
 
samples = random.sample(my_list,num_samples)
print(samples)
# [ 'a', 'e'] this will have any 2 random values

19.数字化

将整数转化成数字列表

num = 123456
 
# using map
list_of_digits = list(map(int, str(num)))
 
print(list_of_digits)
# [1, 2, 3, 4, 5, 6]
 
# using list comprehension
list_of_digits = [int(x) for x in str(num)]
 
print(list_of_digits)
# [1, 2, 3, 4, 5, 6]

20.检查列表元素的唯一性

检查列表中每个元素是否为唯一的:

def unique(l):
    if len(l)==len(set(l)):
        print("All elements are unique")
    else:
        print("List has duplicates")
 
unique([1,2,3,4])
# All elements are unique
 
unique([1,1,2,3])
# List has duplicates

以上就是你需要掌握的20个Python常用技巧的详细内容,更多关于Python技巧的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python服务器与android客户端socket通信实例
Nov 12 Python
举例讲解Python中的算数运算符的用法
May 13 Python
python利用dir函数查看类中所有成员函数示例代码
Sep 08 Python
解决python selenium3启动不了firefox的问题
Oct 13 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
谈一谈基于python的面向对象编程基础
May 21 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
python实现在函数图像上添加文字和标注的方法
Jul 08 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
Python enumerate函数遍历数据对象组合过程解析
Dec 11 Python
Pycharm生成可执行文件.exe的实现方法
Jun 02 Python
OpenCV-Python实现轮廓拟合
Jun 08 Python
python opencv将多个图放在一个窗口的实例详解
pandas中关于apply+lambda的应用
Feb 28 #Python
Python中的datetime包与time包包和模块详情
Feb 28 #Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
You might like
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
JS 字符串连接[性能比较]
2009/05/10 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
Django自定义插件实现网站登录验证码功能
2017/04/19 Python
python 格式化输出百分号的方法
2019/01/20 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
艺术爱好者的自我评价分享
2013/10/08 职场文书
总经理助理工作职责
2014/02/06 职场文书
商场促销活动方案
2014/02/08 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
安全生产月宣传标语
2014/10/06 职场文书
公司委托书格式范文
2014/10/09 职场文书
2014年优秀党员材料
2014/12/18 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs