你需要掌握的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的垃圾回收机制深入分析
Jul 16 Python
使用Python的Twisted框架实现一个简单的服务器
Apr 16 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
用python一行代码得到数组中某个元素的个数方法
Jan 28 Python
python实现在函数图像上添加文字和标注的方法
Jul 08 Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
Sep 18 Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 Python
在Python中实现函数重载的示例代码
Dec 12 Python
Python-jenkins 获取job构建信息方式
May 12 Python
Python中BeautifulSoup通过查找Id获取元素信息
Dec 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使用递归算法无限遍历数组示例
2017/01/13 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
Opacity.js
2007/01/22 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
Vue插槽原理与用法详解
2019/03/05 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
Django 内置权限扩展案例详解
2019/03/04 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
Python字典深浅拷贝与循环方式方法详解
2020/02/09 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
python实现计算器简易版
2020/12/17 Python
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
反邪教警示教育方案
2014/05/13 职场文书
小组口号大全
2014/06/09 职场文书
经费申请报告范文
2015/05/18 职场文书
投诉信回复范文
2015/07/03 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
python执行js代码的方法
2021/05/13 Python
sass 常用备忘案例详解
2021/09/15 HTML / CSS
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python