你需要掌握的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中的文件I/O操作
May 24 Python
Python 迭代器与生成器实例详解
May 18 Python
Python原始字符串与Unicode字符串操作符用法实例分析
Jul 22 Python
Django 路由控制的实现代码
Nov 08 Python
pycharm打开命令行或Terminal的方法
Jan 16 Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 Python
解决python明明pip安装成功却找不到包的问题
Aug 28 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 Python
基于python实现学生信息管理系统
Nov 22 Python
numpy中三维数组中加入元素后的位置详解
Nov 28 Python
python进度条显示之tqmd模块
Aug 22 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连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
轻松实现jquery手风琴效果
2016/01/14 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
ajax请求data遇到的问题分析
2018/01/18 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
2018/07/24 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
vue结合element-ui使用示例
2019/01/24 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
python测试驱动开发实例
2014/10/08 Python
python爬虫的工作原理
2017/03/05 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
python如何查看网页代码
2020/06/07 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
建筑工程技术应届生求职信
2013/11/17 职场文书
工作人员思想汇报
2014/01/09 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
热爱祖国的演讲稿
2014/05/04 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
vue elementUI表格控制对应列
2022/04/13 Vue.js
Java获取字符串编码格式实现思路
2022/09/23 Java/Android