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]
總結
以上是生活随笔為你收集整理的python高级应用_Python高级编程技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸣潮今汐培养突破材料汇总
- 下一篇: python论文格式检查系统_论文格式检