IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 可读性较高的python代码 -> 正文阅读

[Python知识库]可读性较高的python代码

#列表推导式:
#列表推导式使用场景:
#当需要遍历多次列表,通过满足某些特定条件元素来创建子序列,并且你认为把数据保存在内存中不是问题时,你可以使用列表推导式。
[x**2 for x in range(10)]
[x for x in vec if x >= 0]
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
[num for elem in vec for num in elem]
[weapon.strip() for weapon in freshfruit]
[(x, x**2) for x in range(6)]
[str(round(pi, i)) for i in range(1, 6)]
[[row[i] for row in matrix] for i in range(4)]
list(zip(*matrix))


#生成器使用场景:
#文件太大,一次性从数据库中读取大量数据可能会影响内存,并让代码变慢,你需要重构代码为生成器逻辑版本。
def read_file_line(file_name):
        """读取文件并返回文件的每一行.
        @param file_name:文件的绝对路径.
        @return: yiled line.
        """
        with open(file_name) as fread:
            for line in fread:
                yield line


#使用namedtuple作为返回值
#如果Python基础还不错的童鞋,应该知道Python 在return 返回多个值得时候,默认是组成元组进行返回,我们通过返回namedtuple,让返回值更具有可读性,因为namedtuple是tuple元祖的子类,当然包含了它的全部特性,并且有一些元祖没有的额外特性。
#namedtuple是继承自tuple的子类。namedtuple创建一个和tuple类似的对象,而且对象拥有可访问的属性。用以构建只有少数属性但是没有方法的对象。用作返回值很是biu 丢 for !
User = collections.namedtuple('User', ['name', 'age'])
user = User('张三''18')
print(user.name) # 张三
print(user.age) # 18
return user # 可以作为对象进行返回,在传给其他函数的时候,也方便多了。
#使用场景总结:返回多个值,并需要大量传递时,可以使用namedtuple,来减轻参数的数量,让代码可读性更好。如果初学Python不是很懂,代码数量达到一定级别时,回来在思考这个问题,参数的个数,命名,传递的频率,这里就会涉及到考虑升高可读性,扩展性等。

#itertools 模块
#1-输出长度为3的所有子序列
import itertools as it
print(list(it.combinations('1245',3)))
# [('1', '2', '4'), ('1', '2', '5'), ('1', '4', '5'), ('2', '4', '5')]

#2-输出长度为2的所有全排子序列
print(list(it.permutations('124',2)))
# [('1', '2'), ('1', '4'), ('2', '1'), ('2', '4'), ('4', '1'), ('4', '2')]

#3-输出笛卡尔积
print(list(it.product([1,2,3],repeat=2)))
#[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]

#4-数据分组
from operator import itemgetter

rows = [
{'address': '5412 N CLARK', 'date': '07/01/2012'},
{'address': '5148 N CLARK', 'date': '07/04/2012'},
{'address': '5800 E 58TH', 'date': '07/02/2012'},
{'address': '2122 N CLARK', 'date': '07/03/2012'},
{'address': '5645 N RAVENSWOOD', 'date': '07/02/2012'},
{'address': '1060 W ADDISON', 'date': '07/02/2012'},
{'address': '4801 N BROADWAY', 'date': '07/01/2012'},
{'address': '1039 W GRANVILLE', 'date': '07/04/2012'},
]

for date,items in it.groupby(rows,key=itemgetter('date')):
    print(date)
    for i in items:
        print(" ",i)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 12:47:35  更:2021-10-27 12:48:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:03:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码