分享提高 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中偏函数partial用法实例分析
Jul 08 Python
Python脚本实时处理log文件的方法
Nov 21 Python
浅谈Python浅拷贝、深拷贝及引用机制
Dec 15 Python
利用aardio给python编写图形界面
Aug 21 Python
Python解析、提取url关键字的实例详解
Dec 17 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 Python
Python 用matplotlib画以时间日期为x轴的图像
Aug 06 Python
pytorch 常用线性函数详解
Jan 15 Python
查看keras各种网络结构各层的名字方式
Jun 11 Python
python中如何使用虚拟环境
Oct 14 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-fpm 参数的深入理解
2013/06/03 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
js 省地市级联选择
2010/02/07 Javascript
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
简单谈谈Python中函数的可变参数
2016/09/02 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
Python 支持向量机分类器的实现
2020/01/15 Python
Python使用re模块验证危险字符
2020/05/21 Python
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
学习十八大精神心得体会
2013/12/31 职场文书
外贸专业求职信
2014/03/09 职场文书
行风评议整改报告
2014/11/06 职场文书
武夷山导游词
2015/02/03 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL