分享提高 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
使用Python编写vim插件的简单示例
Apr 17 Python
python中threading超线程用法实例分析
May 16 Python
浅谈Python数据类型之间的转换
Jun 08 Python
python 性能提升的几种方法
Jul 15 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
May 31 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
Jun 09 Python
Python+树莓派+YOLO打造一款人工智能照相机
Jan 02 Python
python执行系统命令后获取返回值的几种方式集合
May 12 Python
python3+selenium自动化测试框架详解
Mar 17 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
python多线程爬取西刺代理的示例代码
Jan 30 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
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
11个PHPer必须要了解的编程规范
2014/09/22 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
2011/04/06 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
AngularJS基础 ng-if 指令用法
2016/08/01 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
详解vue.js之props传递参数
2017/12/12 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
JS性能优化实现方法及优点进行
2020/08/30 Javascript
Python中单例模式总结
2018/02/20 Python
python3.5绘制随机漫步图
2018/08/27 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
浅谈python图片处理Image和skimage的区别
2019/08/04 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
深入了解Python 方法之类方法 & 静态方法
2020/08/17 Python
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
在校硕士自我鉴定
2014/01/23 职场文书
小学生期末评语大全
2014/04/21 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
整改报告格式
2014/11/06 职场文书
大明湖导游词
2015/02/03 职场文书
win10下go mod配置方式
2021/04/25 Golang
Python面向对象之成员相关知识总结
2021/06/24 Python
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis