你需要掌握的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实现颜色rgb和hex相互转换的函数
Mar 19 Python
Python中利用sorted()函数排序的简单教程
Apr 27 Python
Python使用tablib生成excel文件的简单实现方法
Mar 16 Python
Python下载指定页面上图片的方法
May 12 Python
Python3调用微信企业号API发送文本消息代码示例
Nov 10 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
使用python绘制二维图形示例
Nov 22 Python
python处理RSTP视频流过程解析
Jan 11 Python
Python流程控制常用工具详解
Feb 24 Python
Pandas —— resample()重采样和asfreq()频度转换方式
Feb 26 Python
详解Python遍历列表时删除元素的正确做法
Jan 07 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 Memcache 中实现消息队列
2009/11/24 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
javascript 全等号运算符使用说明
2010/05/31 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
[04:59]DOTA2-DPC中国联赛 正赛 Ehome vs iG 选手采访
2021/03/11 DOTA
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
Python实现向QQ群成员自动发邮件的方法
2014/11/19 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
工伤赔偿协议书范本
2014/04/15 职场文书
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
催款函怎么写
2015/06/24 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
关于环保的广播稿
2015/12/17 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python