青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Welcome to 陳俊峰's ---BeetleHeaded Man Blog !

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  58 隨筆 :: 32 文章 :: 18 評論 :: 0 Trackbacks

Note One:about sequences and lists

序列是不可變列表。一旦創建了一個序列就不能以任何方式改變它。

例 1.21. 定義序列

>>>
t = ("a", "b", "mpilgrim", "z", "example")
1
>>> t
('a', 'b', 'mpilgrim', 'z', 'example')
>>> t[0]
2
'a'
>>> t[-1]?????????????????????????????????????
3
'example'
>>> t[1:3]????????????????????????????????????
4
('b', 'mpilgrim')

1 序列的定義同列表的定義方式相同,除了整個元素集是用小括號包圍的而不是方括號。
2 序列的元素象列表一樣按定義的次序進行排序。序列的索引象列表一樣從0開始,所以一個非空序列的第一個元素總是 t[0]
3 負數索引象列表一樣從序列尾部開始計數。
4 分片也可以使用,就象列表一樣。注意當分割一個列表時,會得到一個新的列表;當分割一個序列時,會得到一個新的序列。

例 1.22. 序列沒有方法?

>>>? t
('a', 'b', 'mpilgrim', 'z', 'example')
>>>? t.append("new")?
?
Traceback (innermost last):
File "<interactive input>", line 1, in ?
AttributeError: 'tuple' object has no attribute 'append'

>>>? t.remove("z")??
?????????????
Traceback (innermost last):
File "<interactive input>", line 1, in ?
AttributeError: 'tuple' object has no attribute 'remove'

>>>?t.index("example")??
Traceback (innermost last):
? File "<interactive input>", line 1, in ?
AttributeError: 'tuple' object has no attribute 'index'

>>>"z"?in t??
1???

1 你不能向序列增加元素。序列沒有 appendextend 方法。
2 你不能從序列中除掉元素。序列沒有 remove pop 方法。
3 你不能在序列中查找元素。序列沒有 index 方法。
4 然而,你可以使用 in 來看一看是否一個元素存在于序列中

那么序列有什么好處呢?

  • 序列比列表操作速度快。如果你定義了一個值集合常量,并且唯一要用它做的是不斷地遍歷它,使用序列代替列表。
  • 記得我說過 字典關鍵字 可以是整數,字符串和“幾種其它的類型”嗎?序列就是那些類型之一。序列可以在字典中被用作關鍵字,但是列表不行。[2]
  • 序列用在字符串格式化,這一點我們會很快看到。

Note Two : Mapping in the Lists

列表映射介紹?
??????
>>>??li = [1, 9, 8, 4]
>>>??[elem*2 for elem in li]
????? 1
[2, 18, 16, 8]
>>>??li?????????????????????
2
[1, 9, 8, 4]

1

為了對這一點有一個感性認識,從右向左看它。 li 是一個將要映射的列表。Python循環遍歷 li 一次一個元素,臨時將每個元素的值賦給變量 elem。然后Python使用函數 elem*2 ,接著將結果追加到返回列表中。

2 意列表映射不改變被映射的列表。

Note Three :好東西?lambda?函數

Python支持一種有趣的語法,它允許你快速定義單行的最小函數。這些叫做 lambda 的函數是從Lisp中借用來的,可以被用在任何需要函數的地方。

出于歷史的原因,lambda 函數的語法與通常的函數有些細微的不同。

例 2.20. lambda 函數介紹
>>> def f(x):????????? 1
...???? return x*2
...????
>>> f(3)
6
>>> g = lambda x: x*2?
2
>>> g(3)
6
>>> (lambda x: x*2)(3)
3
6

1

這是一個通常的函數聲明,盡管以前你可能沒有看到過定義在交互式窗口中的函數。這個 ... 說明它是一個多行的交互語句。只要在第一行的后面敲入回車,Python IDE會讓你接著輸入命令。

2

這是一個 lambda 函數,它完成同上面普通函數相同的事情。注意這里的簡短的語法;沒有小括號, return 是默認的,并且函數沒有名字,只有將它賦值給變量的變量名。

3

你甚至可以不將 lambda 函數賦值給一個變量而使用它。這不是舉世無雙的東西,它只是展示了 lambda 函數只是一個內聯函數。

總之, lambda 函數是一個可以接收任意多個參數(包括 可選參數 )并且返回單個表達式值的函數。 lambda 函數不能包含命令,它們所包含的表達式不能超過一個。不要試圖向 lambda 函數中塞入太多的東西;如果你需要更復雜的東西,應該定義一個普通函數,然后想讓它多長就多長。

Note
lambda 函數是風格問題。不一定非要使用它們,任何能夠使用它們的地方,都可以定義一個分離的普通的函數,用它來替換。我將它們用在需要封裝特殊的,非重用的代碼上,用許多小的一行函數不會弄亂我的代碼。

例 2.21. 在 in apihelper.py 中的 lambda 函數?
processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)

順便這里有幾件事情需要注意。首先,我們使用了 and-or 技巧的簡單形式,沒問題,因為一個 lambda 函數 在一個布爾環境下 總為真。(這并不意味著 lambda 函數不能返回假值。函數本身總是為真,它的返回值可以為任何值。)

第二,我們使用了 split 函數沒帶參數。你已經看到過它帶 1個或2個參數 的使用,但是不帶參數它按空白進行分割。

例 2.22. split 不帶參數????
>>>s = "this?? is\na\ttest"???????? 1
>>>print s
??
?this?? is
a test

>>>print s.split()
????? 2
['this', 'is', 'a', 'test']
>>>print???" ".join(s.split())
??????? 3
'this is a test'????

1

這是一個多行字符串,通過轉義字符的定義代替了 三重引號 \n 是一個回車; \t 是一個制表符。

2

split 不帶參數按空白進行分割。所以三個空格,一個回車,和一個制表符都是一樣的。

3

你可以將空白統一化,通過分割一個字符串,然后用單個空格作為分隔符將其重新接起來。這就是 help 函數所做的,將多行文檔字符串合并成單行。

那么 help 函數到底用這些 lambda 函數, split 函數,和 and-or 技巧做了什么呢?

例 2.23. 將函數賦給一個變量

				 processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
		

processFunc 現在是一個函數,但它為哪一個函數要看 collapse 變量的值。如果 collapse 為真, processFunc(string) 將壓縮空白;否則,processFunc(string) 將返回未改變的參數。

在一個不很建壯的語言實現它,象VB,你將可能創建一個函數,它接收一個字符串和一個 collapse 參數,使用一個 if 語句來判斷是否要壓縮空白或不壓縮,然后返回相應的值。這樣效率低,因為函數將不得不處理每種可能性;每次你調用它,它將不得不在給出你所想要的東西之前,判斷是否要壓縮空白。在Python中,你可以將那種判斷邏輯拿到函數外面,而定義一個裁減過的 lambda 函數來給出確切的(并且唯一)你想要的。這樣做更有效率,更漂亮,并且更少導致那些令人討厭的(哦,想到那些參數就頭昏)的錯誤。

posted on 2006-04-13 21:49 Jeff-Chen 閱讀(309) 評論(0)  編輯 收藏 引用 所屬分類: Python
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩亚洲网| 老司机一区二区三区| 欧美日产一区二区三区在线观看 | 午夜精品一区二区在线观看| 亚洲精品中文字幕有码专区| 亚洲黄色成人| 久久九九全国免费精品观看| 先锋影音国产一区| 欧美制服丝袜| 久热精品视频在线| 欧美~级网站不卡| 亚洲国产精品小视频| 亚洲精品激情| 亚洲伊人一本大道中文字幕| 午夜亚洲精品| 免费91麻豆精品国产自产在线观看| 久久夜色精品国产噜噜av| 欧美国产1区2区| 国产精品国产三级国产专播品爱网 | 老司机一区二区| 亚洲国产一二三| 99视频在线观看一区三区| 亚洲视频电影图片偷拍一区| 欧美一区二区黄| 免费影视亚洲| 国产精品videosex极品| 国产日产欧美精品| 91久久久在线| 亚洲一区区二区| 久久香蕉国产线看观看av| 亚洲第一免费播放区| 亚洲视频香蕉人妖| 久久免费视频在线| 欧美视频在线观看一区| 国产九九视频一区二区三区| 亚洲第一二三四五区| 中文亚洲免费| 久久久久久97三级| 一本一本久久a久久精品综合妖精| 亚洲欧美视频一区二区三区| 免费成人网www| 国产小视频国产精品| 亚洲精品资源| 久久精品日韩一区二区三区| 亚洲精品护士| 久久一区二区视频| 国产女主播在线一区二区| 亚洲欧美一区二区三区在线| 欧美不卡高清| 亚洲综合成人在线| 久久久久免费观看| 国产精品日韩高清| 99热精品在线| 亚洲福利国产精品| 久久久夜夜夜| 国产一区二区三区电影在线观看| 99精品久久久| 欧美国产日本高清在线| 午夜精品一区二区在线观看| 欧美精品一区二区蜜臀亚洲| 精品福利av| 久久久久久久尹人综合网亚洲| 日韩一级黄色av| 欧美精品v国产精品v日韩精品| 黄色成人av在线| 久久www免费人成看片高清| 一区二区三区你懂的| 欧美伦理视频网站| 日韩亚洲成人av在线| 亚洲第一精品在线| 女女同性女同一区二区三区91| 在线观看国产精品淫| 蜜桃av一区| 久久影视三级福利片| 激情国产一区二区| 免费视频亚洲| 蜜桃久久av一区| 亚洲日本va午夜在线电影| 欧美黄色一区二区| 欧美岛国在线观看| av成人天堂| 99ri日韩精品视频| 欧美午夜精品久久久久久浪潮| 亚洲视频二区| 欧美亚洲一区| 亚洲国产成人久久| 日韩一级在线| 狠狠色丁香久久婷婷综合丁香 | 国产亚洲精品高潮| 久久精品国产99| 免费久久99精品国产自| 一区二区三区蜜桃网| 亚洲男人的天堂在线| 在线观看成人小视频| 日韩一级裸体免费视频| 国产一区二区欧美日韩| 欧美激情一区二区| 国产精品午夜久久| 欧美第一黄网免费网站| 欧美日韩亚洲一区二区三区| 午夜在线视频一区二区区别| 久久一区中文字幕| 亚洲一区欧美二区| 久久亚洲综合色| 欧美亚洲一级片| 欧美搞黄网站| 国产精品女主播在线观看| 国产精品免费电影| 欧美在线999| 久久久久一本一区二区青青蜜月| 久久综合一区二区| 亚洲精品老司机| 一区二区三欧美| 亚洲国产mv| 99国产精品久久久久久久成人热 | 国产三区二区一区久久| 久久久精品国产一区二区三区 | 亚洲欧美日韩精品| 在线免费一区三区| 日韩网站在线观看| 国产一区二区日韩精品欧美精品| 欧美激情2020午夜免费观看| 欧美高清在线视频| 久久久久91| 亚洲一区二区在线视频 | 一区二区精品国产| 亚洲综合视频一区| 亚洲国产老妈| 亚洲欧美国产va在线影院| 亚洲高清电影| 亚洲一区二区三区免费观看| 狠狠色综合播放一区二区| 91久久在线| 国产偷国产偷亚洲高清97cao| 欧美大片免费| 国产老肥熟一区二区三区| 欧美成人精品在线| 国产精品日韩一区二区| 亚洲午夜精品国产| 亚洲精品网站在线播放gif| 亚洲欧美成人精品| 99国产精品久久久久久久| 久久久久久有精品国产| 午夜精品久久久久久久| 国产精品久久久久久久久久久久| 欧美88av| 狠狠色伊人亚洲综合成人| 亚洲一区二区三区四区在线观看| 亚洲人成小说网站色在线 | 久久深夜福利| 亚洲欧美日韩一区二区三区在线| 美女视频一区免费观看| 欧美一区二区视频免费观看| 久久九九国产| 亚洲欧美激情诱惑| 欧美日韩亚洲一区二区三区| 亚洲福利视频专区| 最新成人在线| 在线视频欧美一区| 欧美精品久久99| 亚洲第一二三四五区| 激情91久久| 久久gogo国模啪啪人体图| 91久久精品国产91久久性色| 国产精品久久久久aaaa樱花| 欧美激情精品久久久久久大尺度 | 性欧美videos另类喷潮| 一区二区日本视频| 亚洲欧美日韩国产一区| 久久夜色精品国产欧美乱极品| 国产欧美激情| 久久精品91久久久久久再现| 久久精品导航| 国产一区自拍视频| 久久成人一区| 一本色道久久99精品综合| 亚洲一区二区不卡免费| 国产精品v一区二区三区| 亚洲一区二区三区激情| 欧美在线国产| 国产精品男人爽免费视频1| 欧美中文字幕在线观看| 男女视频一区二区| 日韩视频在线观看| 欧美日韩专区| 欧美亚洲一区三区| 可以看av的网站久久看| 亚洲欧洲精品一区二区三区不卡 | 欧美成年视频| 一本久久a久久精品亚洲| 欧美日本亚洲视频| av成人免费| 裸体一区二区三区| 日韩视频免费看| 国产精品久久久久久影院8一贰佰| 亚洲一级黄色av| 久久综合狠狠综合久久综青草| 亚洲——在线| 亚洲第一级黄色片| 国产精品mm|