分享提高 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 监听salt job状态,并任务数据推送到redis中的方法
Jan 14 Python
Python 3.8中实现functools.cached_property功能
May 29 Python
python简单鼠标自动点击某区域的实例
Jun 25 Python
python如何获取apk的packagename和activity
Jan 10 Python
Django Admin后台添加数据库视图过程解析
Apr 01 Python
python实现逢七拍腿小游戏的思路详解
May 26 Python
python如何处理程序无法打开
Jun 16 Python
详解向scrapy中的spider传递参数的几种方法(2种)
Sep 28 Python
基于python爬取链家二手房信息代码示例
Oct 21 Python
基于Python爬取搜狐证券股票过程解析
Nov 18 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 Python
pytorch 如何使用amp进行混合精度训练
May 24 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生成随机数或者字符串的代码
2008/09/05 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
JSONP之我见
2015/03/24 Javascript
基于nodejs+express(4.x+)实现文件上传功能
2015/11/23 NodeJs
js调出上下文菜单的实例
2015/12/17 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
React中的render何时执行过程
2018/04/13 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
Python描述器descriptor详解
2015/02/03 Python
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
wxPython实现带颜色的进度条
2019/11/19 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
日本无添加化妆品:HABA
2016/08/18 全球购物
心理学专业毕业生推荐信范文
2013/11/21 职场文书
大学生毕业的自我评价分享
2014/01/02 职场文书
给同学的道歉信
2014/01/16 职场文书
带病坚持工作事迹
2014/05/03 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
颐和园的导游词
2015/01/30 职场文书
坎儿井导游词
2015/02/09 职场文书
物业管理交接协议书
2016/03/24 职场文书
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers
全网非常详细的pytest配置文件
2022/07/15 Python