分享提高 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使用simplejson模块解析JSON的方法
Mar 24 Python
python读取二进制mnist实例详解
May 31 Python
vue.js实现输入框输入值内容实时响应变化示例
Jul 07 Python
python实现汽车管理系统
Nov 30 Python
在python带权重的列表中随机取值的方法
Jan 23 Python
[机器视觉]使用python自动识别验证码详解
May 16 Python
Python 的AES加密与解密实现
Jul 09 Python
基于plt.title无法显示中文的快速解决
May 16 Python
Django全局启用登陆验证login_required的方法
Jun 02 Python
Keras-多输入多输出实例(多任务)
Jun 22 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
Python实现列表拼接和去重的三种方式
Jul 02 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
How do I change MySQL timezone?
2008/03/26 PHP
php中rename函数用法分析
2014/11/15 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
ext实现完整的登录代码
2008/08/08 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
2016/05/31 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
js数组操作方法总结(必看篇)
2016/11/22 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
vue-router beforeEach跳转路由验证用户登录状态
2018/12/26 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
使用webpack和rollup打包组件库的方法
2021/02/25 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
利用Python实现颜色色值转换的小工具
2016/10/27 Python
python版简单工厂模式
2017/10/16 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
python实现udp传输图片功能
2020/03/20 Python
古驰英国官网:GUCCI英国
2020/03/07 全球购物
数据保密承诺书
2014/06/03 职场文书
服装设计师求职信
2014/06/04 职场文书
学校教师培训工作总结
2015/10/14 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
python字典进行运算原理及实例分享
2021/08/02 Python
Redis实现分布式锁的五种方法详解
2022/06/14 Redis