分享提高 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 从远程服务器下载东西的代码
Feb 10 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
Python中用PIL库批量给图片加上序号的教程
May 06 Python
Python中title()方法的使用简介
May 20 Python
详解Python爬虫的基本写法
Jan 08 Python
Python利用神经网络解决非线性回归问题实例详解
Jul 19 Python
Python 通过截图匹配原图中的位置(opencv)实例
Aug 27 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
python 实现批量图片识别并翻译
Nov 02 Python
详解Python中list[::-1]的几种用法
Nov 16 Python
只用Python就可以制作的简单词云
Jun 07 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 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 serialize()与unserialize()的用法
2013/06/05 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
2013/09/30 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
Python使用新浪微博API发送微博的例子
2014/04/10 Python
Python实现获取操作系统版本信息方法
2015/04/08 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
大众服装店创业计划书范文
2014/01/01 职场文书
工商管理专业职业生涯规划
2014/01/01 职场文书
解除劳动合同协议书范本
2014/04/14 职场文书
心理健康日活动总结
2014/05/08 职场文书
HR求职自荐信范文
2014/06/21 职场文书
党员转正党支部意见
2015/06/02 职场文书
企业法人代表证明书
2015/06/18 职场文书
合同范本之电脑出租
2019/08/13 职场文书
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python
简单且有用的Python数据分析和机器学习代码
2021/07/02 Python
Vue的过滤器你真了解吗
2022/02/24 Vue.js