python 生成器装饰器_python: 生成器,装饰器以及列表推导式写法
1.连接字符串尽量用format,两个的时候可以用 +
name = "lxw"
age = 24
x = "{0}{1}".format(name, age) #YES
print(type(x))
2.避免在循环中用+和+=操作符来累加字符串. 由于字符串是不可变的, 这样做会创建不必要的临时对象, 并且导致二次方而不是线性的运行时间.
# 可以将每个子串加入列表, 然后在循环结束后用 .join 连接列表.
list_ = ['m','i','t','c','hell']
print(''.join(list_))
3.推荐使用with语句以管理文件
with open(...) as f:
f.write(...)
4.在不复杂的前提下建议使用列表推导式
for i in [1,2,3,4,5]:
if i != 1:
print('Yes')
else:
print('No')
# 有if和else的列表推导式
[print('Yes') if i == 1 else print('No') for i in [1,2,3,4,5]]
# 只有if的列表推导式
[print('Yes') for i in [1,2,3,4,5] if i == 1]
# 列表推导式实现对list的append,一行完成定义list和append。
def num0():
a = [x for x in range(10)]
print(a)
num0()
# 两层for循环
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
flattened = []
'''
for row in matrix:
for i in row:
flattened.append(i)
'''
[flattened.append(i) for row in matrix for i in row ]
print(flattened)
# 字典的推导式
input_dict = {'Name':'Mitchell'}
changed = {value: key for key, value in input_dict.items()} # 将字典的value和key互换
print(changed)
# 集合的推导式
words_list = ['Apple','Banana','Cat','Dog']
chars = {w[0] for w in words_list} # 用列表所有元素的首字母生成集合
print(chars)
5.装饰器
from functools import wraps
import time
# 定义装饰器
def login(text): # 定义一个可以传入参数的装饰器,需要在嵌套一个函数
def time_calculate(func):
def wrapper(*args,**kargs):
start_time = time.time()
f = func(*args,**kargs)
exec_time = time.time() - start_time
print('执行时间为: {}s'.format(exec_time))
return f
return wrapper
print(text)
return time_calculate
@login('Hello World!')
def add_num2(a, b):
return a + b
add_num2(1, 2)
6.生成器
# 例子:根据DataFrame中的列的索引返回Excel中的对应的列标签(如0对应A),用到了生成器。
from string import ascii_lowercase,ascii_uppercase # 小写大写字母
import itertools
def iter_all_strings():
for size in itertools.count(1):
for s in itertools.product(ascii_uppercase, repeat=size):
yield "".join(s)
def dict_location():
list_location = []
for s in iter_all_strings():
list_location.append(s)
if s == 'ZZ':
break
a = list(range(0,716))
excel_dict = dict(zip(a,list_location))
return excel_dict
dict_location()
蟹蟹
python 生成器装饰器_python: 生成器,装饰器以及列表推导式写法相关推荐
- Python计算基尼系数实践笔记(案例+代码+视频+列表推导式)
前些天听了南京大学周耿老师关于"基尼系数计算"的直播课,需要时间好好消化,便有了整理此篇文章的想法. 1 基尼系数 1.1 简介 1912年意大利经济学家基尼,设计了一个测度社会贫 ...
- 【技能树共建】Python 列表推导式
Python 列表推导式是什么 列表推导式是 Python 语言特有的一种语法结构,也可以看成是 Python 中一种独特的数据处理方式, 它在 Python 中用于 转换 和 过滤 数据. 其语法格 ...
- 迭代列表不要For循环,这是Python列表推导式最基本的概念
如果你还在使用 For 循环迭代列表,那么你需要了解了解列表推导式,看看它的基本概念都是什么. 列表解析式(List comprehension)或者称为列表推导式,是 Python 中非常强大和优雅 ...
- python 优雅的 列表推导式(for in if)生成器表达式 集合推导式和字典推导式 列表动态构建器(不用先创建空容器【空列表】,再一个一个append()进去那样麻烦了)
文章目录 用于创建列表也是非常方便的,比如获取当前连接的所有Intel Realsense摄像头序列号 写代码的时候偶然将这段优雅的代码码了出来,感觉很神奇,就去搜索,原来这种语法叫做列表推导式(fo ...
- python列表推导式生成随机数_python 【迭代器 生成器 列表推导式】
python [迭代器 生成器 列表推导式] 一.迭代器 1.迭代器 如何从列表.字典中取值的 index索引 ,key for循环 凡是可以使用for循环取值的都是可迭代的 可迭代协议 :内部含 ...
- python三元表达式求值_python 三元表达式的 列表推导式 生成器推导式
python中三元表达式的语法如下 ===if else result = x if condition else y 另外一种三元表达式,比较少见 result = (x, y)[condition ...
- python列表推导式生成随机数_Python:列表推导式/生成器推导式
一,列表推导式和生成器表达式 l = [i for i in range(10)] print(l) l1 = ['选项%s'%i for i in range(10)] print(l1) 1.把列 ...
- format函数python生成列表_python 全栈开发,Day14(列表推导式,生成器表达式,内置函数)...
一.列表生成式 生成1-100的列表 li = [] for i in range(1,101): li.append(i) print(li) 执行输出: [1,2,3...] 生成python1期 ...
- python 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数
一.三元表达式 语法:[成立1 if condition1 else成立2 if condition2 else ...if 成立N conditionN else 不成立] sex = 'man' ...
最新文章
- iOS动画系列之八:使用CAShapeLayer绘画动态流量图
- 长度限制的队列Python
- Vagrant搭建可移动的PHP开发环境
- 太神奇了!使用C#实现自动核验健康码:(1)二维码识别
- centos6.5 MySQL 服务器_启用CentOS6.5 64位安装时自带的MySQL数据库服务器
- HTML 中多媒体设置:1、滚动字幕及滚动图片的设置 2、音乐视频的插入
- 6-4-JSP隐式对象
- 【网络信息安全】网络信息安全概述
- 第 12 章 执行引擎
- linux查看/etc/fastab,/etc/fastab文件丢失致系统宕机的解决方案
- Raffi Krikorian 为“在运行中进行架构重写”提供了指南
- 分享一款在线考试学习系统.net源码
- 如何查询服务器jdk版本信息,linux服务器jdk版本查看_linux如何查看jdk版本
- 2020最新版前端学习路线图--Javascript网页编程重点知识
- CDA备考学习笔记——基础知识篇(三)
- 烤仔TVのCCW丨存储押金代付
- 利用node爬取王者荣耀英雄信息,并存入数据库
- 二维码技术在证卡上的应用
- 设计模式-装饰器模式 C++
- 苹果设备尺寸和控件尺寸