6个Python代码简化方法

2023-11-17

ython开发代码简化除了采用规范化的编程规则之外,代码编写的逻辑性和对内置规则的掌握也对其有一定的影响,以下是Python3支持的用法,合理的利用可以极大的简化代码的书写复杂度。

  1. 列表推导式

对于一组列表,如果想让其所有元素翻倍,很多人都会采用以往比较经典的写法,其实Python中有更精简的办法,实例如下:

以往做法:

num = [1, 3, 5, 7, 9]

for i in range(len(num)):

num[i]= num[i] * 3

Python简化写法:

num = [1, 3, 5, 7, 9]

bag = [elem * 3 for elem in num]

  1. 遍历列表

传统遍历列表是用函数表示列表的长度进行循环遍历,Python3可以省略这一步,更加简洁!

以往做法:

num = [1, 3, 5, 7, 9]

for i in range(len(num)):

print(num[i])

Python简化写法:

num = [1, 3, 5, 7, 9]

for i in num:

print(i)

  1. 元素互换

对于元素互换,传统做法需要设定一个中间变量,进行数值的承接,Python元素互换变得简单了很多。

以往做法:

a = 3

b = 4

c = a

a = b

b = c

Python简化写法:

a = 3

b = 4

a,b = b,a

  1. 初始化列表

Python也有简洁的初始化列表表示方法,具体简洁程度,举个例子感受一下吧,以下是要一个是8个整数1的列表

以往做法:

bag = []

for _ in range(8):

bag.append(1)

Python简化写法:

bag = [1] * 8

  1. 构造字符串

经常打印字符串,需要用到构造函数,传统写法需要很多连接符和参数比较复杂,Python用法就简洁很多,以下是相关实例:

以往做法:

name = “oldboy”

age = “30”

born_in = “beijing”

str = "Hello my name is " + name +"and I’m " + str(age) + " years old. I was born in " +born_in + “.”

print(str)

Python简化写法:

name = “oldboy”

age = “30”

born_in = “beijing”

str = “Hello my name is {0} and I’m {1}years old. I was born in {2}.”.format(name, age, born_in)

print(str)

6.返回tuples元组

Python允许一个函数中返回多个元素,以下是解包元组实例:

以往做法:

def binary():

return 0, 1

result = binary()

zero = result[0]

one = result[1]

Python简化写法:

def binary():

return 0, 1

zero, one = binary()

以上是采用Python写法实现的相关功能的6个简单实例,通过对比可以看出,Python编程更加简洁优雅,简单的代码,即可轻松实现强大功能,这样的用法Python还有很多,学习Python的人员可以学习研究一下!

作者:lmseo5hy
来源:CSDN
原文:https://blog.csdn.net/lmseo5hy/article/details/80004976
版权声明:本文为博主原创文章,转载请附上博文链接!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

6个Python代码简化方法 的相关文章

随机推荐

  • Django报错403 Forbidden. CSRF token missing or incorrect的解决办法

    Django报错403 Forbidden CSRF token missing or incorrect的解决办法 首先要确认自己在views py中使用的是render 之后确认自己在xx html中的
  • KCF高速跟踪详解

    思想 一般化的跟踪问题可以分解成如下几步 1 在 It 帧中 在当前位置 pt 附近采样 训练一个回归器 这个回归器能计算一个小窗口采样的响应 2 在 It 1 帧中 在前一帧位置 pt 附近采样 用前述回归器判断每个采样的响应 3 响应最
  • IntelliJ IDEA 如何创建一个包,并在包中创建一个Java程序

    1 选中scr右键后 将鼠标放到New上 点击Package 2 采用域名倒置的方式对包名进行命名 3 选中包后 鼠标右键选中New 点击Java Class 完成一个Java程序的创建
  • Python算法:深度优先搜索—DFS(模板及其样例)

    深度优先搜索搜索 介绍 沿着一条路径一直搜索下去 在无法搜索时 回退到刚刚访问过的节点 并且每个节点只能访问一次 本质上是持续搜索 遍历了所有可能的情况 必然能得到解 流程是一个树的形式 每次一条路走到黑 目的主要是达到被搜索结构的叶结点直
  • Nginx学习与实战 · 解决net::ERR_CONTENT_LENGTH_MISMATCH 206问题

    Vue项目引入了d3 js 在打包部署到nginx静态服务后 页面不能正常展示 F12打开控制台 发现报了几个net ERR CONTENT LENGTH MISMATCH 206 Partial Content 错误 第一次遇到Statu
  • Java 实现微信支付详细教程

    摘要 最近的一个项目中涉及到了支付业务 其中用到了微信支付和支付宝支付 在做的过程中也遇到些问题 所以现在总结梳理一下 分享给有需要的人 也为自己以后回顾留个思路 一 微信支付接入准备工作 首先 微信支付 只支持企业用户 个人用户是不能接入
  • 【Pytorch论文相关代码】使用SOLD2预训练好的模型检测与匹配线段(自己的数据集)

    文章目录 前言 使用流程 检测与匹配结果 前言 论文链接 SOLD2 Self supervised Occlusion aware Line Description and Detection 论文源码 https github com
  • Spyder 运行时kernels启动报错

    1 报错如下 An error ocurred while starting the kernel Your Python environment or installation doesn t have the spyder kernel
  • 表格增删查改使用ajax请求后端数据并没有更新的问题

    1 如果使用的是vue 那么先检查你的表格有没有使用v model实现数据双向绑定 2 使用ajax请求 因为ajax默认使用的是异步请求 也就是客户端请求给服务端时 客户端不需要等待也可以做其他事情 这是我实现添加的代码 其中标框的asy
  • MySQL在线大表DDL操作

    MySQL在线大表DDL操作的方法 1 主从架构轮询修改 a 主库会话级别的记录binglog的参数关闭 b 500 502错误异常捕捉 c 检查备库的second behind master是否有延迟 d varchar有页分裂的情况 尽
  • 【linux 异常断电】进入了emergency mode解决办法

    系统异常断电关机 导致启动时进入了emergency mode 解决办法 1 查看日志或报错信息 查看日志 journalctl 按他的操作输入journalctl之后输入shift g到日志最后查看报错发现是xfs sda3有问题 发现
  • ES6关于函数详解

    设置默认值的方式 ES6 之前 不能直接为函数的参数指定默认值 只能采用变通的方法 ES6 允许为函数的参数设置默认值 即直接写在参数定义的后面 function log x y World console log x y log Hell
  • 基于SpringBoot的共享单车管理系统

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SpringBoot 前端 采用HTML和Vue技术开发 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Ec
  • 《剑指Offer》62:圆圈中最后剩下的数字(约瑟夫环)

    题目 0 1 2 n 1这n个数字排成一个圆圈 从数字0开始 每次从这圆圈你删除第m个数字 求出这个圆圈里剩下的最后一个数字 例如 0 1 2 3 4这5个数字组成一个圆圈 从数字0开始每次删除第3个数字 则删除的前4个数字依次2 0 4
  • 踩了大坑:https 证书访问错乱

    文章目录 一 问题排查及解决 问题一 证书加载错乱 问题二 DNS 解析污染问题 问题三 浏览器校验问题 二 终极解决方法 2 1 可外网访问域名 2 2 只能内网访问域名 2 3 内网自动化配置 2 4 错误解决 一 问题排查及解决 今天
  • 用SpringBoot开发工商银行平台公众号及小程序埋名聚合支付(微信小程序支付)

    因为项目需求的原因 需要开发小程序支付 采取的支付流程是用工商银行 以下简称工行 的埋名聚合支付 接口 进行小程序支付开发 工行 开发指南业务申请 https open icbc com cn icbc apip docs intro ht
  • 阿里云配置MINIO图床

    阿里云 ECS服务器 CENTOS7系统部署MINIO图床 1 下载MINIO的二进制文件 注 阿里云ECS网速过慢 但可以接受 wget https dl minio io server minio release linux amd64
  • AES加密,128-192-256,方案一

    AES加密 直接粘贴代码 异常什么的自己要处理 做个总结记录 package com xiao aes util import java io UnsupportedEncodingException import java securit
  • jmeter压测报错socket closed解决方法

    socket closed 问题原因 在JMeter下 发送http 请求时 一般都是默认选择了use keepAlive 这个是连接协议 JMeter坑就在这里 默认勾选了这个 如果不勾选的话 也不会保存 但其配置JMeter prope
  • 6个Python代码简化方法

    ython开发代码简化除了采用规范化的编程规则之外 代码编写的逻辑性和对内置规则的掌握也对其有一定的影响 以下是Python3支持的用法 合理的利用可以极大的简化代码的书写复杂度 列表推导式 对于一组列表 如果想让其所有元素翻倍 很多人都会