你需要掌握的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使用mysqldb连接数据库操作方法示例详解
Dec 03 Python
python的绘图工具matplotlib使用实例
Jul 03 Python
Django学习笔记之Class-Based-View
Feb 15 Python
利用Python读取文件的四种不同方法比对
May 18 Python
Windows系统下多版本pip的共存问题详解
Oct 10 Python
Python迭代器iterator生成器generator使用解析
Oct 24 Python
Python 脚本拉取 Docker 镜像问题
Nov 10 Python
Python Web静态服务器非堵塞模式实现方法示例
Nov 21 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
Python实现密码薄文件读写操作
Dec 16 Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 Python
图神经网络GNN算法
May 11 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
超级简单的php+mysql留言本源码
2009/11/11 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
php实现的xml操作类
2016/01/15 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
JS 密码强度验证(兼容IE,火狐,谷歌)
2010/03/15 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
js实现时钟定时器
2020/03/26 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
Python的Tornado框架异步编程入门实例
2015/04/24 Python
python爬取网页转换为PDF文件
2018/06/07 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
基于Python函数和变量名解析
2019/07/19 Python
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
Omio中国:全欧洲低价大巴、火车和航班搜索和比价
2018/08/09 全球购物
新闻系毕业生推荐信
2013/11/16 职场文书
CNC数控操作工岗位职责
2013/11/19 职场文书
政府采购方案
2014/06/12 职场文书
开展创先争优活动总结
2014/08/28 职场文书
安全生产年活动总结
2014/08/29 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
写给同事的离职感言
2015/08/04 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
Nginx实现负载均衡的项目实践
2022/03/18 Servers
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏