python高级应用_Python高级编程技巧

Python

高级编程技巧

本文展示一些高级的

Python

设计结构和它们的使用方法。在日常工作中,你可以根据需要

选择合适的数据结构,

例如对快速查找性的要求、

对数据一致性的要求或是对索引的要求等,

同时也可以将各种数据结构合适地结合在一起,从而生成具有逻辑性并易于理解的数据模

型。

Python

的数据结构从句法上来看非常直观,并且提供了大量的可选操作。这篇指南尝

试将大部分常用的数据结构知识放到一起,并且提供对其最佳用法的探讨。

推导式

(Comprehensions)

使

Python

(list

comprehensions)

这是一种将

for

循环、

if

表达式以及赋值语句放到单一语句中的一种方法。

换句话说,你能够通过一个表达式对一个列表做映射或过滤操作。

一个列表推导式包含以下几个部分:

一个输入序列

一个表示输入序列成员的变量

一个可选的断言表达式

一个将输入序列中满足断言表达式的成员变换成输出列表成员的输出表达式

举个例子,我们需要从一个输入列表

num = [1, 4, -5, 10, -7, 2, 3, -1]

filtered_and_squared = []

for number in num:

if number > 0:

filtered_and_squared.append(number ** 2)

print filtered_and_squared

# [1, 16, 100, 4, 9]

很简单是吧?但是这就会有

4

行代码,两层嵌套外加一个完全不必要的

append

操作。而如

果使用

filter

lambda

map

函数,则能够将代码大大简化:

num = [1, 4, -5, 10, -7, 2, 3, -1]

filtered_and_squared = map(lambda x: x ** 2, filter(lambda x: x > 0, num))

print filtered_and_squared

# [1, 16, 100, 4, 9]

嗯,

这么一来代码就会在水平方向上展开。

那么是否能够继续简化代码呢?列表推导能够给

我们答案

:

num = [1, 4, -5, 10, -7, 2, 3, -1]

filtered_and_squared = [ x**2 for x in num if x > 0]

print filtered_and_squared

# [1, 16, 100, 4, 9]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值