分享提高 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深入学习之闭包
Aug 31 Python
python使用PIL缩放网络图片并保存的方法
Apr 24 Python
python实现可以断点续传和并发的ftp程序
Sep 13 Python
python利用lxml读写xml格式的文件
Aug 10 Python
对python Tkinter Text的用法详解
Oct 11 Python
Python实现的爬取百度贴吧图片功能完整示例
May 10 Python
基于Python的PIL库学习详解
May 10 Python
python中seaborn包常用图形使用详解
Nov 25 Python
pymysql模块的操作实例
Dec 17 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 04 Python
Opencv+Python识别PCB板图片的步骤
Jan 07 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
木翼下载系统中说明的PHP安全配置方法
2007/06/16 PHP
php 删除记录实现代码
2009/03/12 PHP
使用PHP Socket写的POP3类
2013/10/30 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
javascript判断单选框或复选框是否选中方法集锦
2007/04/04 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
2014/06/24 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
微信小程序选择图片和放大预览图片功能
2017/11/02 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
JS实现根据数组对象的某一属性排序操作示例
2019/01/14 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
浅谈python中set使用
2016/06/30 Python
从django的中间件直接返回请求的方法
2018/05/30 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
python中的时区问题
2021/01/14 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
耐克巴西官方网站:Nike巴西
2016/08/14 全球购物
环保志愿者活动总结
2014/06/27 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
MySQL系列之四 SQL语法
2021/07/02 MySQL
element tree树形组件回显数据问题解决
2022/08/14 Javascript