Python代码优化:第二部分

Python代码优化:第二部分

原文作者: Dhruv Singh

原文链接:http://www.codeproject.com/Tips/833354/Python-Code-Optimizations-Part-Two

翻译:jiong

 

代码使用

1.      调用一个函数,直到一个标记值

blocks = []

while True:

     block= f.read(32)

      if block == '':

            break

      blocks.append(block)

Python化的方式:使用iter()

blocks = []

for block in iter(partial(f.read, 32),''):

          blocks.append(block)

iter()函数有两个参数,第一个参数是一个函数名,你可以重复调用;第二个参数是标记值。

为了使它运行,iter()函数中的第一个函数得是一个没有参数的函数。

但是我们知道f.read()在调用时得有一个参数,所以为了使它运行,我们使用partial()函数,它可以减少函数的参数。

 

2.      再循环中区分多个出口

def find(seq, target):
    found = False
    for i, value in enumerate(seq):
        if value == target:
            found = True
            return i
    if not found:
        return -1

Python化的方式:在循环中使用else

def find(seq, target):

   for i, value in enumerate(seq):

       if value == target:

           return i

   else:

       return -1

在上述的例子中,循环运行有两部分:

(1)      如果我们结束循环,并且没有碰到退出,return -1;

(2)      如果我们正常结束循环,return i。

下面,我已经给了一个小例子,它可以帮助你更好地理解它!

考虑一个简单的例子,我们许多人每天都会碰到。

寻找你的房子的钥匙,它有以下两个结果:

你找到钥匙,并拿出了钥匙。return 1。

或者,你搜索所有的房间,也没有找到,因此你出来空手而归。Return -1。

3.      在字典的keys中循环

Python化的方式

d = {'a' : 'apple', 'b' : 'ball', 'c' : 'cat'}
for k in d:
    print k

引用:

如果你把列表看作一个字典,列表的索引就近似于在字典中的键。

4.      改变字典

Python化的方式

for k in d.keys():
    if k.startswith('a'):
        del d[k]

引用:

当你遍历字典的时候,你不能对字典进行改变。

在这个例子中,d.keys()调用了键这一参数,复制了所有的键,并存储在列表中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值