成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python列表內涵實際中的使用介紹

開發 后端
Python列表內涵是應用相當廣泛的一個Python語句。下面我們來詳細的看看最簡單的Python列表內涵的具體編寫方法。

Python列表內涵如何進行相關的編寫。其實在使用的時候有不少的問題需要存在,下面我們就來看看相關的使用情況。具體就用如何編寫列表內涵的一個著名例子是生成九九乘法表來向大家介紹。#t#

Python列表內涵(List Comprehensions,也譯作“列表推導式”)是Python***有力的語法之一,常用于從集合對象中有選擇地獲取并計算元素,雖然多數情況下可以使用for、if等語句組合完成同樣的任務,但列表內涵書寫的代碼更簡潔(當然有時可能會不易讀)。

列表內涵的一般形式如下,我們可以把[]內的列表內涵寫為一行,也可以寫為多行(一般來說多行更易讀)。

[表達式 for item1 in 序列1 ... for itemN in 序列N if 條件表達式]

上面的表達式分為三部分,最左邊是生成每個元素的表達式,然后是for 迭代過程,最右邊可以設定一個if 判斷作為過濾條件。

列表內涵的一個著名例子是生成九九乘法表:

  1. s = [(x, y, x*y) for x in range(1, 10) for y in range(1,10) if x>=y] 

列表內涵可能放在函數編程一章更合適,因為它可以統一實現map和filter等高階函數(下一章介紹)。不過我還是傾向于將它看為一種組合的流程控制語句,而且我個人感覺它與C#中的LINQ有點神似(當然LINQ更強大,可以處理數據庫和XML)。下面是兩個例子,一個用LINQ實現,一個用Python的列表內涵實現。

 

  1. C#中用LINQ找出10以內的偶數  
  2. var s = from x in Enumerable.Range(0, 10) where x % 2 == 0 select x;  
  1. #Python中用列表內涵模擬以上LINQ語句  
  2. s = [x for x in range(0, 10) if x % 2 == 0] 

當然上邊的例子很簡單,實際上我們可以用列表內涵完成更復雜的程序設計任務,而且效率一般會比使用for、if等的組合語句高(因為中間省略了一些列表的生成和賦值過程)。Python 2.5 之后,列表內涵進行了進一步的擴展,如果一個函數接受一個可迭代對象作為參數,那么可以給它傳遞一個不帶中括號的列表內涵,這樣就不需要一次生成整個列表,只要將可迭代對象傳遞給函數。

動態表達式

先布置一個思考題:在C#語言中,如果需要在文本框中輸入1+2(或更復雜的數學表達式)后計算它的值,你會怎么做呢?

不怕大家笑,我在用C#解決這個問題的時候,是自己做了一個表達式解析器…………,雖然只能計算加減乘除的簡單組合,但也著實費了我好大力氣。后來才開始使用各種各樣的第三方Parse組件,msscript等?,F在我們有了Python,要完成這個任務可以說是非常簡單,簡單到你不敢相信:只要用內置的eval()函數,就可以計算并返回任意有效表達式的值。例如:

  1. str = '1+2'2 print eval(str) 

你還可以試驗更復雜的表達式,是不是很Powerful的一項功能?

除了eval函數之外,Python還提供了exec語句將字符串str當成有效Python代碼來執行,看下面的例子:

  1. #exec.py  
  2. exec 'a=100'3 print a 

另外還有execfile函數,它用來執行一個外部的py文件。上一個例子存為exec.py后,運行下邊的代碼就知道是怎么回事了:

  1. execfile(r'c:\exec.py') 

***提醒,默認的eval(),exec,execfile()所運行的代碼都位于當前的名字空間中,eval(), exec,和execfile()函數也可以接受一個或兩個可選字典參數作為代碼執行的全局名字空間和局部名字空間,具體可以參考Python的手冊,我就不啰嗦了。

 

責任編輯:張浩 來源: IT168
相關推薦

2010-03-16 20:27:52

Python模塊

2024-11-21 06:00:00

Python列表推導式

2010-03-22 19:11:55

Python連接

2010-03-24 09:46:16

Python 2.6

2010-03-25 09:38:03

Eclipse開發Py

2010-03-19 12:49:20

Python編程

2010-03-22 15:58:08

Python模塊功能

2009-08-31 17:47:43

C#接口使用

2010-03-04 13:53:17

Python實現WEB

2010-03-19 14:59:00

python Stri

2010-03-24 18:54:53

Python語言

2010-03-17 15:58:08

Python環境

2010-03-17 09:32:16

Python安裝筆記

2009-12-18 16:57:02

CISCO路由器

2010-03-22 09:54:38

Python開發環境

2010-03-23 18:20:26

Python os.g

2010-03-19 17:39:49

Python編程

2010-03-26 18:51:51

Python作用域

2010-04-09 16:26:53

Oracle join

2010-03-17 15:17:19

Python矩陣轉置
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久免费大片 | 欧美日韩在线综合 | 99福利网| 日韩三级免费网站 | 在线黄av| 一区二区三区国产好 | 玖玖精品 | 美女视频黄色片 | 91在线看| 亚洲综合无码一区二区 | 天天色图 | 精品国产一区二区三区免费 | 亚洲欧美激情精品一区二区 | 91国产在线视频在线 | 亚洲区一区二 | 91久久久久久久久久久久久 | 欧美片网站免费 | 国产精品欧美一区二区三区不卡 | 麻豆av片| 成人精品视频在线观看 | 亚洲国产情侣自拍 | 国产成人综合一区二区三区 | 久久久www成人免费精品 | 国产一区二区三区免费观看视频 | 亚洲国产精品99久久久久久久久 | 一区二区三区精品 | 免费观看一级特黄欧美大片 | 九一视频在线播放 | 欧美lesbianxxxxhd视频社区 | 一区二区三区免费 | 91精产国品一二三区 | www国产成人| 国产毛片毛片 | 欧洲精品一区 | 九九在线视频 | 亚洲精品国产第一综合99久久 | 午夜一区二区三区在线观看 | 国产精品精品视频一区二区三区 | 欧美激情精品久久久久 | 51ⅴ精品国产91久久久久久 | 精品一区二区三区中文字幕 |