分享提高 Python 代码的可读性的技巧


Posted in Python onMarch 03, 2022

1. 字符串反转

字符串反转有很多方法,咱们再这里介绍两种:一种是切片,一种是python字符串的reversed方法。

# -!- coding: utf-8 -!-
string = 'hello world'

# 方法1
new_str = string[::-1]
ic(new_str)

# 方法二
new_str2 = ''.join(reversed(string))
ic(new_str2)

'''
ic| new_str: 'dlrow olleh'
ic| new_str2: 'dlrow olleh'
'''

2. 首字母大写

这里咱们也是介绍两种方法,区别之处在于**capitalize()**仅是首字母大写

**title()**是每个单词开头的首字母都大写

# 首字母大写
string = 'hello python and world'

# 方法一
new_str = string.capitalize()
ic(new_str)


# 方法二
new_str2 = string.title()
ic(new_str2)

'''
ic| new_str: 'Hello python and world'
ic| new_str2: 'Hello Python And World'
'''

3. 查询唯一元素

我们利用set的唯一性来确定字符串的唯一元素:

string = 'hellohellohello'
new_str = set(string)
# set类型
ic(new_str)
# 字符串类型
new_str = ''.join(new_str)
ic(new_str)

'''
ic| new_str: {'l', 'o', 'h', 'e'}
ic| new_str: 'lohe'
'''

4. 变量交换

python中的变量交换比java简单多了,交换两个变量无需定义第三个中间变量,直接交换即可实现

a = 'hello'
b = 'world'
ic(a+b)

# 直接交换两个变量
a, b = b, a
ic(a+b)

'''
ic| a+b: 'helloworld'
ic| a+b: 'worldhello'
'''

5. 列表排序

列表排序这里我们也提供两种方式。第一个是列表自带的**sort()方法;第二个是python内置函数sorted()**方法

score = [88, 99, 91, 85, 94, 85, 94, 78, 100, 80]
# 方法一
new_score = sorted(score)
ic('默认升序:', new_score)

score = [57, 29, 11, 27, 84, 34, 87, 25, 70, 60]
# 方法二
new_score2 = sorted(score, reverse=True)
ic('设置降序', new_score2)

'''
ic| '默认升序:', new_score: [78, 80, 85, 85, 88, 91, 94, 94, 99, 100]
ic| '设置降序', new_score2: [87, 84, 70, 60, 57, 34, 29, 27, 25, 11]
'''

6.列表推导式

使用列表推导式可以快速生成一个列表或者根据列表生成满足需求的列表

# 生成10个10-100以内随机整数
numbers = [random.randint(10, 100) for x in range(10)]
ic(numbers)

# 输入5折后的价格
price = [800, 500, 400, 860, 780, 520, 560]
half_price = [(x*0.5)for x in price]
ic(half_price)

'''
ic| numbers: [64, 22, 80, 70, 34, 81, 74, 35, 85, 12]
ic| half_price: [400.0, 250.0, 200.0, 430.0, 390.0, 260.0, 280.0]
'''

7. 合并字符串

合并字符串我们使用string.join()方法实现

lists = ['hello', 'world', 'python', 'java', 'c++']

# 合并字符串
new_str = ' '.join(lists)
ic(new_str)

'''
ic| new_str: 'hello world python java c++'
'''

8. 拆分字符串

拆分字符串我们使用string的split()方法实现

string = 'hello world python java c++'
string2 = 'hello|world|python|java|c++'

# 拆分字符串
new_str = string.split(' ')
ic(new_str)

new_str2 = string2.split('|')
ic(new_str2)

'''
ic| new_str: ['hello', 'world', 'python', 'java', 'c++']
ic| new_str2: ['hello', 'world', 'python', 'java', 'c++']
'''

9. 回文串检测

回文串是指abaabbacccbcccaaaa这种左右对称的字符串。我们可以根据之前提到的切片来检测这种特殊的字符串序列

str = '20211202'

if str == str[::-1]:
    print('yes')
else:
    print('no')

'''
yes
'''

10. 统计列表元素出现次数

统计列表中元素各自出现的次数我们使用collections Counter方法

from collections import Counter
lists = ['a', 'a', 'b', 'b', 'b', 'c', 'd', 'd', 'd', 'd', 'd']

# 统计所有元素出现的次数
counts = Counter(lists)
ic(counts)

# 统计某一元素出现的次数
ic(counts['d'])

# 统计出现最多次数的一个元素
ic(counts.most_common(1))

'''
ic| counts: Counter({'d': 5, 'b': 3, 'a': 2, 'c': 1})
ic| counts['d']: 5
ic| counts.most_common(1): [('d', 5)]
'''

到此这篇关于分享10提高 Python 代码的可读性的技巧的文章就介绍到这了,更多相关提高 Python 代码可读性内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现获取Ip归属地等信息
Aug 27 Python
python3.4用函数操作mysql5.7数据库
Jun 23 Python
pycharm 配置远程解释器的方法
Oct 28 Python
python的常用模块之collections模块详解
Dec 06 Python
Python基础之函数的定义与使用示例
Mar 23 Python
Flask-WTF表单的使用方法
Jul 12 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 Python
django 前端页面如何实现显示前N条数据
Mar 16 Python
Python自动发送和收取邮件的方法
Aug 12 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
python实现快速文件格式批量转换的方法
Oct 16 Python
Python为何不支持switch语句原理详解
Oct 21 Python
使用python创建股票的时间序列可视化分析
Python Pandas读取Excel日期数据的异常处理方法
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 #Python
python3中apply函数和lambda函数的使用详解
Feb 28 #Python
你需要掌握的20个Python常用技巧
Feb 28 #Python
python opencv将多个图放在一个窗口的实例详解
pandas中关于apply+lambda的应用
Feb 28 #Python
You might like
构建简单的Webmail系统
2006/10/09 PHP
PHPEXCEL 使用小记
2013/01/06 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
从零学Python之入门(二)基本数据类型
2014/05/25 Python
浅要分析Python程序与C程序的结合使用
2015/04/07 Python
Python之父谈Python的未来形式
2016/07/01 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
举例讲解Python常用模块
2019/03/08 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
Python接口测试文件上传实例解析
2020/05/22 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
利用Canvas模仿百度贴吧客户端loading小球的方法示例
2017/08/13 HTML / CSS
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
小学教师的个人自我鉴定
2013/10/24 职场文书
优秀大学生职业生涯规划书
2014/02/27 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python