你需要掌握的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 相关文章推荐
python3访问sina首页中文的处理方法
Feb 24 Python
Python如何通过subprocess调用adb命令详解
Aug 27 Python
基于Python Numpy的数组array和矩阵matrix详解
Apr 04 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
Jun 11 Python
Python并发:多线程与多进程的详解
Jan 24 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
python实现小程序推送页面收录脚本
Apr 20 Python
学python最电脑配置有要求么
Jul 05 Python
python实现最短路径的实例方法
Jul 19 Python
python 三种方法提取pdf中的图片
Feb 07 Python
python爬取新闻门户网站的示例
Apr 25 Python
Pillow图像处理库安装及使用
Apr 12 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实现文本数据导入SQL SERVER
2015/05/17 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
2020/11/23 PHP
javascript一些不错的函数脚本代码
2008/09/10 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
jQuery简单动画变换效果实例分析
2016/07/04 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
python dataframe NaN处理方式
2019/12/26 Python
PyTorch中permute的用法详解
2019/12/30 Python
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
初中英语教学反思
2014/01/25 职场文书
保护环境建议书400字
2014/05/13 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书