17条提高工作效率的Python技巧分享

目录
  • 1.引言
  • 2.技巧总结
    • 2.1.处理用户的多个输入
    • 2.2.处理多个条件语句
    • 2.3.判断数字奇偶性
    • 2.4.交换变量
    • 2.5.反转字符串
    • 2.6.判断字符串是否为回文串
    • 2.7.尽量使用 Inline if statement
    • 2.8.删除list中的重复元素
    • 2.9.找到list中重复最多的元素
    • 2.10.list 生成式
    • 2.11.使用*args传递多个参数
    • 2.12.在循环时处理下标
    • 2.13.拼接list中多个元素
    • 2.14.将两个字典进行合并
    • 2.15.使用两个list生成一个字典
    • 2.16.字典按照value进行排序
    • 2.17.Pretty print

1.引言

在这篇文章中,我们将讨论最常用的python技巧。大多数这些技巧都是我在日常工作中使用过的简单的Trick,我觉得好东西就是要拿出来和大家一起分享。

2.技巧总结

2.1.处理用户的多个输入

有时我们需要从用户那里获得多个输入,以便使用循环或任何迭代,一般的写法如下:

# bad practice码
n1 = input("enter a number : ")
n2 = input("enter a number : ")
n2 = input("enter a number : ")
print(n1, n2, n3)

但是更好的处理方法如下:

# good practice
n1, n2, n3 = input("enter a number : ").split()
print(n1, n2, n3)

2.2.处理多个条件语句

如果我们在代码中需要检查多个条件语句,此时我们可以使用 all() 或 any() 函数来实现我们的目标。一般来说, 当我们有多个 and 条件时使用 all(),当我们有多个 or 条件时使用 any()。这种用法将使我们的代码更加清晰易读,可以方便我们在调试时不会遇到麻烦。

对于all()的一般例子如下:

size = "lg"
color = "blue"
price = 50
# bad practice
if size == "lg" and color == "blue" and price < 100:
    print("Yes, I want to but the product.")

更好的处理方法如下:

# good practice
conditions = [
    size == "lg",
    color == "blue",
    price < 100,
]
if all(conditions):
    print("Yes, I want to but the product.")

对于any()的一般例子如下:

# bad practice
size = "lg"
color = "blue"
price = 50
if size == "lg" or color == "blue" or price < 100:
    print("Yes, I want to but the product.")

更好的处理方法如下:

# good practice
conditions = [
    size == "lg",
    color == "blue",
    price < 100,
]
if any(conditions):
    print("Yes, I want to but the product.")

2.3.判断数字奇偶性

这很容易实现,我们从用户那里得到输入,将其转换为整数,检查 对数字2的求余操作,如果余数为零,则它是偶数。

print('odd' if int(input('Enter a number: '))%2 else 'even')

2.4.交换变量

Python中如果需要交换变量的值,我们无需定义临时变量来操作。

我们一般使用如下代码来实现变量交换:

v1 = 100
v2 = 200
# bad practice
temp = v1
v1 = v2
v2 = temp

但是更好的处理方法如下:

v1 = 100
v2 = 200
# good practice
v1, v2 = v2, v1

2.5.反转字符串

将字符串进行反转最简单的实现方式为[::-1] ,代码如下:

print("John Deo"[::-1])

2.6.判断字符串是否为回文串

在Python中判断一个字符串是否为回文串,只需要使用语句 string.find(string[::-1])== 0 ,示

例代码如下:

v1 = "madam" # is a palindrome string
v2 = "master" # is not a palindrome string
print(v1.find(v1[::-1]) == 0) # True
print(v1.find(v2[::-1]) == 0) # False

2.7.尽量使用 Inline if statement

大多数情况下,我们在条件之后只有一个语句,因此使用Inline if statement 可以帮助我们编写更简洁的代码。

举例如下,一般的写法为:

name = "ali"
age = 22
# bad practices
if name:
    print(name)
if name and age > 18:
    print("user is verified")

但是更好的处理方法如下:

# a better approach
print(name if name else "")
""" here you have to define the else condition too"""
# good practice 
name and print(name)
age > 18 and name and print("user is verified")

2.8.删除list中的重复元素

我们不需要遍历整个list列表来检查重复元素,我们可以简单地使用 set() 来删除重复元素,

代码如下:

lst = [1, 2, 3, 4, 3, 4, 4, 5, 6, 3, 1, 6, 7, 9, 4, 0]
print(lst)
unique_lst = list(set(lst))
print(unique_lst)

2.9.找到list中重复最多的元素

在Python中可以使用 max( ) 函数并传递list.count 作为key,即可找出列表list中重复次数最多的元素,代码如下:

lst = [1, 2, 3, 4, 3, 4, 4, 5, 6, 3, 1, 6, 7, 9, 4, 0]
most_repeated_item = max(lst, key=lst.count)
print(most_repeated_item)

2.10.list 生成式

Python中我最喜欢的功能就是list comprehensions , 这个特性可以使我们编写非常简洁功能强大的代码,而且这些代码读起来几乎像自然语言一样通俗易懂。

举例如下:

numbers = [1,2,3,4,5,6,7]
evens = [x for x in numbers if x % 2 is 0]
odds = [y for y in numbers if y not in evens]
cities = ['London', 'Dublin', 'Oslo']
def visit(city):
    print("Welcome to "+city)
for city in cities:
    visit(city)

2.11.使用*args传递多个参数

在Python中我们可以使用*args来向函数传递多个参数,举例如下:

def sum_of_squares(n1, n2)
    return n1**2 + n2**2
print(sum_of_squares(2,3))
# output: 13
"""
what ever if you want to pass, multiple args to the function 
as n number of args. so let's make it dynamic.
""" 
def sum_of_squares(*args):
    return sum([item**2 for item in args])
# now you can pass as many parameters as you want
print(sum_of_squares(2, 3, 4))
print(sum_of_squares(2, 3, 4, 5, 6))

2.12.在循环时处理下标

有时我们在工作中,想要获得循环中元素的下标,一般来说,比较优雅的写法如下:

lst = ["blue", "lightblue", "pink", "orange", "red"]
for idx, item in enumerate(lst):
     print(idx, item)

2.13.拼接list中多个元素

在Python中一般使用Join() 函数来将list中所有元素拼接到一起,当然我们也可以在拼接的时候添加拼接符号

样例如下:

names = ["john", "sara", "jim", "rock"]
print(", ".join(names))

2.14.将两个字典进行合并

在Python中我们可以使用{**dict_name, **dict_name2, … }将多个字典进行合并,

样例如下:

d1 = {"v1": 22, "v2": 33}
d2 = {"v2": 44, "v3": 55}
d3 = {**d1, **d2}
print(d3)

结果如下:

{'v1': 22, 'v2': 44, 'v3': 55}

2.15.使用两个list生成一个字典

在Python中,如果我们需要将两个列表中对应的元素组成字典,那么我们可以使用 zip 功能来方便地做到这一点。

代码如下:

keys = ['a', 'b', 'c']
vals = [1, 2, 3]
zipped = dict(zip(keys, vals))

2.16.字典按照value进行排序

在Python中我们使用sorted()函数来按照字典的value来对其进行排序.

代码如下:

d = {
    "v1": 80,
    "v2": 20,
    "v3": 40,
    "v4": 20,
    "v5": 10,
}
sorted_d = dict(sorted(d.items(), key=lambda item: item[1]))
print(sorted_d)

当然我们也可以使用itemgetter( ) 来替代上述 lambda函数,

代码如下:

from operator import itemgetter
sorted_d = dict(sorted(d.items(), key=itemgetter(1)))

更进一步,我们也可以通过传递reverse=True 对其进行降序排序:

sorted_d = dict(sorted(d.items(), key=itemgetter(1), reverse=True))

2.17.Pretty print

Python中使用Print()函数,有时候的输出贼拉拉丑陋,此时我们使用pprint可以使输出更加美观,

样例如下:

from pprint import pprint
data = {
    "name": "john deo",
    "age": "22",
    "address": {"contry": "canada", "state": "an state of canada :)", "address": "street st.34 north 12"},
    "attr": {"verified": True, "emialaddress": True},
}
print(data)
pprint(data)

输出如下:

{'name': 'john deo', 'age': '22', 'address': {'contry': 'canada', 'state': 'an state of canada :)', 'address': 'street st.34 north 12'}, 'attr': {'verified': True, 'emialaddress': True}}
{'address': {'address': 'street st.34 north 12',
             'contry': 'canada',
             'state': 'an state of canada :)'},
 'age': '22',
 'attr': {'emialaddress': True, 'verified': True},
 'name': 'john deo'}

使用pprint函数可以让字典的输出更加容易阅读.

到此这篇关于17条提高工作效率的Python技巧分享的文章就介绍到这了,更多相关提高工作效率的Python技巧 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python 使用和高性能技巧操作大全

    目录 1. 易混淆操作 1.1 有放回随机采样和无放回随机采样 1.2 lambda 函数的参数 1.3 copy 和 deepcopy 1.4 == 和 is 1.5 判断类型 1.6 字符串搜索 1.7 List 后向索引 2. C/C++ 用户使用指南 2.1 很大的数和很小的数 2.2 布尔值 2.3 判断为空 2.4 交换值 2.5 比较 2.6 类成员的 Set 和 Get 2.7 函数的输入输出参数 2.8 读文件 2.9 文件路径拼接 2.10 解析命令行选项 2.11 调用外部

  • 提升 Python 代码运行速度的6个技巧

    其实,Python 比我们想象的运行的要快.我们之所以有先入为主的认为Python运行慢,可能是我们平常的误用和缺乏使用技巧知识. 接下来让我们看看如何用一些简单的Trick来提高我们程序的运行性能 1.使用内置函数 Python中的许多内置函数都是用C实现的,并且经过了很好的优化.因此,如果熟悉这些内置函数,就可以提高Python代码的性能.一些常用的内置函数有sum().len().map().max()等. 假设我们有一个包含单词的列表,我们希望每个单词的首字母均变为大写.此时使用map(

  • python中常用的九个语法技巧

    目录 前言 数字分隔符 交换变量值 连续比较式 字符串乘法 列表拼接与乘法 列表切片 打包解包 With语句对文件操作 列表解析式 总结 前言 python语言简单.方便,尤其体现在语法方面,在其它语言中需要用很多行语句表达的,在python中只需1-2行语句就可以方便地操作. 数字分隔符 如果我们现在要输入100亿,可以这样: a=10000000000 但你是不是也数不清自己输入了多少个0 #数字分隔符 a0=10000000000 a1=100*10000*10000 a2=100_000

  • 分享18 个 Python 高效编程技巧

    目录 01 交换变量 02 字典推导(Dictionary comprehensions)和集合推导(Set comprehensions) 03 计数时使用Counter计数对象. 04 漂亮的打印出JSON 05 解决FizzBuzz 06 if 语句在行内 07 连接 08 数值比较 09 同时迭代两个列表 10 带索引的列表迭代 11 列表推导式 12 字典推导 13 初始化列表的值 14 列表转换为字符串 15 从字典中获取元素 16 获取列表的子集 17 迭代工具 18 False

  • 分享15 超级好用得 Python 实用技巧

    目录 01 all or any 02 dir 03 列表(list)推导式 04 pprint 05 repr 06 sh 07 Type hints 08 uuid 09 wikipedia 10 xkcd 11 zip 12 emoji 13 howdoi 14 Jedi 15 **kwargs 01 all or any Python 语言如此流行的众多原因之一,是因为它具有很好的可读性和表现力. 人们经常开玩笑说 Python 是可执行的伪代码.当你可以像这样写代码时,就很难反驳. x

  • 提升Python运行速度的5个小技巧

    目录 1. 选择合适的数据结构 2. 善用强大的内置函数和第三方库 3. 少用循环 4. 避免循环重复计算 5. 少用内存.少用全局变量 总结 官方原文,代码均可运行 Python 是世界上使用最广泛的编程语言之一.它是一种解释型高级通用编程语言,具有广泛的用途,几乎可以将其用于所有事物.其以简单的语法.优雅的代码和丰富的第三方库而闻名.python除了有很多优点外,但在速度上还有一个非常大的缺点. 虽然Python代码运行缓慢,但可以通过下面分享的5个小技巧提升Python运行速度! 首先,定

  • 分享5个python提速技巧,速度瞬间提上来了

    目录 1.跳过迭代对象的开头 2.避免数据复制 3.避免变量中间变量 4.循环优化 5.使用numba.jit 1.跳过迭代对象的开头 string_from_file = """   // Wooden: ...   // LaoLi: ...   //   // Whole: ...   Wooden LaoLi...   """  import itertools   for line in itertools.dropwhile(lamb

  • 17条提高工作效率的Python技巧分享

    目录 1.引言 2.技巧总结 2.1.处理用户的多个输入 2.2.处理多个条件语句 2.3.判断数字奇偶性 2.4.交换变量 2.5.反转字符串 2.6.判断字符串是否为回文串 2.7.尽量使用 Inline if statement 2.8.删除list中的重复元素 2.9.找到list中重复最多的元素 2.10.list 生成式 2.11.使用*args传递多个参数 2.12.在循环时处理下标 2.13.拼接list中多个元素 2.14.将两个字典进行合并 2.15.使用两个list生成一个

  • 如何使用JS console.log()技巧提高工作效率

    我们知道 console.log(message)用法很简单,表示将参数message 打印到控制台上. console.log('前端小智') // 前端小智 const myAge = 28 console.log(myAge) // 28 本文主要介绍5个有用的技巧,可帮助你在使用console.log()时提高工作效率. 1. 打印全名变量 如果在控制台打印多个变量,是数量比较多的情况下,我们很难区别哪个变量对应哪个值. function sum(a, b) { console.log(

  • 用Python调用win命令行提高工作效率的实例

    作为程序猿,每天一上班打开电脑要做的时候就是打开各种工作所需的工具,如QQ,SQL Server,浏览器,编辑器等,每天都要一个个点,重复性的工作做多了也觉得烦(关键是影响了我上班倒水的时间). 于是就寻思着用python写一个简单的脚本来帮我一次性打开这些东西,解放我的双手,让我有时间去倒水. 环境是win10 64 Python3.6.5,使用到的模块是os,webbrowser. 其实实现的原理很简单,就是在相当于在win下的dos打开程序一样. 举个例子:如果我要打开我的qq. 在win

  • 分享十个Python提高工作效率的自动化脚本

    目录 01.解析和提取 HTML 02.二维码扫描仪 03.截图 04.创建有声读物 05.PDF 编辑器 06.迷你 Stackoverflow 07.自动化手机 08.监控 CPU/GPU 温度 09.Instagram 上传机器人 10.视频水印 在这个自动化时代,我们有很多重复无聊的工作要做. 想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松. 那么在本文中,我将向您介绍 10 个 Python 自动化脚本,以使你的工作更加自动化,生活更加轻松. 因此,没有更多

  • 学好Java MyBatis拦截器,提高工作效率

    目录 场景: 1.麻瓜做法 2.优雅做法 3.什么是拦截器? 4.使用拦截器更新审计字段 5.自定义拦截器 6.配置拦截器插件 场景: 在后端服务开发时,现在很流行的框架组合就是SSM(SpringBoot + Spring + MyBatis),在我们进行一些业务系统开发时,会有很多的业务数据表,而表中的信息从新插入开始,整个生命周期过程中可能会进行很多次的操作. 比如:我们在某网站购买一件商品,会生成一条订单记录,在支付完金额后订单状态会变为已支付,等最后我们收到订单商品,这个订单状态会变成

  • 18个帮你简化代码的Python技巧分享

    目录 什么是单行代码 为什么我需要它们 开始 1.if-else 2. elif 3. if 4.函数 5.循环(列表推导式) 6. if 循环 7. if else 循环 8. While 循环与 if else 9. 变量交换 10. 多重赋值 11. 将字符串写入文件 12.快速排序 13. 斐波那契数列 14. HTTP 服务器 15. 嵌套 For 循环 16. 输出不换行 17.类 18. 海象运算符:=(Python 3.8) 结论 大家好,我是海拥,在今天的博客中,我们将讨论 P

  • python技巧分享Excel创建和修改

    openpyxl是一个读写Excel文档的Python库,能够同时读取和修改Excel文档. openpyxl是一个开源项目,因此在使用之前需要先进行安装: pip install openpyxl openxpyxl中有三个不同层次的类,分别是Workbook.Worksheet和Cello.Workbook是对Excel工作簿的抽象,Worksheet是对表格的抽象,Cell是对单元格的抽象.每一个类都包含了若干属性和方法,以便于我们通过这些属性和方法获取表格中的数据.一个Workbook对

  • 18 个 Python 编程技巧,提高工作效率

    目录 01交换变量 02字典推导(Dictionarycomprehensions)和集合推导(Setcomprehensions) 03计数时使用Counter计数对象. 04漂亮的打印出JSON 05解决FizzBuzz 06if语句在行内 07连接 08数值比较 09同时迭代两个列表 10带索引的列表迭代 11列表推导式 12字典推导 13初始化列表的值 14列表转换为字符串 15从字典中获取元素 16获取列表的子集 17迭代工具 18FalseTrue 前言: 初识Python语言,觉得

  • 提高ASP效率的五大技巧

    技巧之一:提高使用Request集合的效率  访问一个ASP集合来提取一个值是费时的.占用计算资源的过程.因为这个操作包含了一系列对相关集合的搜索,这比访问一个局部变量要慢得多.因此,如果打算在页面中多次使用Request集合中的一个值,应该考虑将其存贮为一个局部变量. 例如将代码写成下面的形式以加快脚本引擎处理速度: 复制代码 代码如下: strTitle=Request.Form("Title") strFirstName=Request.Form("FirstName&

  • 可以提高工作效率 EditPlus自动完成与剪辑库下载

    先点击这里下载Editplus 语法文件.剪辑库与自动完成文件 [2007-03-30更新] EditPlus 2.3 下载 不需要安装,直接运行,第一次需要填写序列号,请在汉化文件中查找!(其中包括了最新的配置文件,最好放在D盘Program Files文件夹下!) 应版中朋友的要求我编写了一下xHtml的自动完成文件.下载后解压到EP的根目录下,然后在EP的首选项的语法中设定这个文件.然后用EP打开这个文件,看一下就清楚怎么用了. 举例:打一个"d"然后空格,然后EP就会把这个&q

随机推荐