亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 5.html

?? 一個python入門書
?? HTML
字號:
<HTML><!-- Mirrored from www.math.pku.edu.cn/teachers/lidf/docs/Python/5.html by HTTrack Website Copier/3.x [XR&CO'2005], Fri, 08 Jul 2005 11:49:13 GMT --><HEAD><TITLE>第五章 Python數據結構</TITLE></HEAD><BODY><H1>第五章 Python數據結構</H1><P>本章更詳細地討論一些已經講過的數據類型的使用,并引入一些新的類型。</P><H2>5.1 列表</H2><P>列表數據類型還有其它一些方法。下面是列表對象的所有方法:</P><UL><LI>insert(i, x) ---- 在指定位置插入一項。第一自變量是要在哪一個元素前面插入,用下標表示。例如,a.insert(0, x)在列表前面插入,a.insert(len(a), x)等價于a.append(x)<LI>append(x) ---- 等價于a.insert(len(a), x)<LI>index(x) ---- 在列表中查找值x然后返回第一個值為x的元素的下標。沒有找到時出錯。<LI>remove(x) ---- 從列表中刪去第一個值為x的元素,找不到時出錯。<LI>sort() ---- 對列表元素在原位排序。注意這個方法改變列表,而不是返回排序后的列表。<LI>reverse() ---- 把列表元素反序。改變列表。<LI>count(x) ---- 返回x在列表中出現的次數。 </UL><P> 下例使用了所有的列表方法:<PRE>&gt;&gt;&gt; a = [66.6, 333, 333, 1, 1234.5]&gt;&gt;&gt; print a.count(333), a.count(66.6), a.count('x')2 1 0&gt;&gt;&gt; a.insert(2, -1)&gt;&gt;&gt; a.append(333)&gt;&gt;&gt; a[66.6, 333, -1, 333, 1, 1234.5, 333]&gt;&gt;&gt; a.index(333)1&gt;&gt;&gt; a.remove(333)&gt;&gt;&gt; a[66.6, -1, 333, 1, 1234.5, 333]&gt;&gt;&gt; a.reverse()&gt;&gt;&gt; a[333, 1234.5, 1, 333, -1, 66.6]&gt;&gt;&gt; a.sort()&gt;&gt;&gt; a[-1, 1, 66.6, 333, 333, 1234.5]</PRE><H3>5.1.1 函數程序設計工具</H3><P>Python中有一些函數程序設計風格的東西,例如前面我們看到的lambda形式。關于列表有三個非常有用的內置函數:filter(), map()和reduce()。</P><P>“filter(函數, 序列)”返回一個序列(盡可能與原來同類型),序列元素是原序列中由指定的函數篩選出來的那些,篩選規則是“函數(序列元素)=true”。filter()可以用來取出滿足條件的子集。例如,為了計算一些素數:</P><PRE>&gt;&gt;&gt; def f(x): return x % 2 != 0 and x % 3 != 0...&gt;&gt;&gt; filter(f, range(2, 25))[5, 7, 11, 13, 17, 19, 23]</PRE><P>“map(函數,序列)”對指定序列的每一項調用指定的函數,結果為返回值組成的列表。map()可以對序列進行隱式循環。例如,要計算三次方,可用:</P><PRE>&gt;&gt;&gt; def cube(x): return x*x*x...&gt;&gt;&gt; map(cube, range(1, 11))[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]</PRE><P>可以有多個序列作為自變量,這時指定的函數必須也有相同個數的自變量,函數從每個序列分別取出對應元素作為自變量進行調用(如果某個序列比其它的短則取出的值是None)。如果指定的函數是None,map()把它當成一個返回自己的自變量的恒同函數。在函數用None的情況下指定多個序列可以把多個序列搭配起來,比如“map(None, list1, list2)”可以把兩個列表組合為一個成對值的列表。見下例:</P><PRE>&gt;&gt;&gt; seq = range(8)&gt;&gt;&gt; def square(x): return x*x...&gt;&gt;&gt; map(None, seq, map(square, seq))[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6, 36), (7, 49)]</PRE><P>“reduce(函數, 序列)”用來進行類似累加這樣的操作,這里的函數是一個兩個子變量的函數,reduce()先對序列的前兩項調用函數得到一個結果,然后對結果和序列下一項調用函數得到一個新結果,如此進行到序列尾部。例如,要計算1到10的和:</P><PRE>&gt;&gt;&gt; def add(x,y): return x+y...&gt;&gt;&gt; reduce(add, range(1, 11))55</PRE><P>如果序列中只有一個值則返回這個值,序列為空時會產生例外。可以指定第三個自變量作為初始值。有初始值時對空序列函數將返回初始值,否則函數先對初始值和序列第一項作用,然后對結果和序列下一項作用,如此進行到序列尾。例如:</P><PRE>&gt;&gt;&gt; def sum(seq):...     def add(x,y): return x+y...     return reduce(add, seq, 0)... &gt;&gt;&gt; sum(range(1, 11))55&gt;&gt;&gt; sum([])0</PRE><H2>5.2 del語句</H2><P>上面我們看到,列表的remove()方法可以從列表中刪去某個取值的項,我們還可以用del語句來刪除指定下標的項。也可以用del語句從列表中刪除一個片斷(前面我們是用給片斷賦空列表的辦法刪除片斷的)。例如:</P><PRE>&gt;&gt;&gt; a[-1, 1, 66.6, 333, 333, 1234.5]&gt;&gt;&gt; del a[0]&gt;&gt;&gt; a[1, 66.6, 333, 333, 1234.5]&gt;&gt;&gt; del a[2:4]&gt;&gt;&gt; a[1, 66.6, 1234.5]</PRE><P>del也可以用來刪除整個變量,例如:</P><P>&gt;&gt;&gt; del a</P><P>變量刪除以后再引用該變量就會出錯(除非又給它賦值了)。后面我們還會看到del的其它一些應用。</P><H2>5.3 序表和序列</H2><P>我們看到列表和字符串有許多共同點,例如,下標和片斷運算。它們都屬于序列數據類型。因為Python是一個正在不斷發展的語言,以后還可能會加入其它的序列數據類型。現在還有一種標準的序列數據類型,稱為序表(tuple)。</P><P>序表由一系列值用逗號分隔而成,例如:</PRE><PRE>&gt;&gt;&gt; t = 12345, 54321, 'hello!'&gt;&gt;&gt; t[0]12345&gt;&gt;&gt; t(12345, 54321, 'hello!')&gt;&gt;&gt; # 序表允許嵌套:... u = t, (1, 2, 3, 4, 5)&gt;&gt;&gt; u((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))</PRE><P>輸出的序表總是用括號包圍,這樣可以保證嵌套序表得以正確解釋。輸入時可以有括號也可以沒有括號,當經常是必須有括號(如果序表是一個大表達式的一部分)。</P><P>序表有許多用處,例如,(x,y)坐標對,數據庫中的職工紀錄,等等。序表與字符串一樣是不可變的:不允許對序表的某一項賦值。</P><P>生成序表時對0項或1項的序表有特殊的規定:空序表用一對空括號表示;只有一項的序表用一個之后面跟一個抖好表示(指把這個值放在括號內是不夠的)。這樣寫不夠美觀,但很有效。例如:</P><PRE>&gt;&gt;&gt; empty = ()&gt;&gt;&gt; singleton = 'hello',    # &lt;-- note trailing comma&gt;&gt;&gt; len(empty)0&gt;&gt;&gt; len(singleton)1&gt;&gt;&gt; singleton('hello',)</PRE><P>語句t = 12345, 54321, 'hello!'是序表打包的一個實例:12345, 54321和'hello!'這些值被打包進了一個序表中。相反的操作也是允許的,例如:</P><P>&gt;&gt;&gt; x, y, z = t</P><P>這叫做序表解包。序表解包要求等號左邊的變量個數等于序表的長度。注意多重賦值只是序表打包和序表解包的聯合使用。有時也對列表進行類似操作,即列表解包。只要把各變量寫成一個列表就可以進行解包:</P><PRE>&gt;&gt;&gt; a = ['spam', 'eggs', 100, 1234]&gt;&gt;&gt; [a1, a2, a3, a4] = a</PRE><H2>5.4 字典</H2><P>Python內置的另一個有用的數據類型是字典。字典在其它語言中有時被稱為“關聯記憶”或“關聯數組”。字典不象序列,它不是用在一個范圍之內的數字下標來索引,而是用鍵值來索引,鍵值可以是任何不可變類型。字符串和數值總可以作鍵值。如果序表只包含字符串、數值或序表則序表也可以作鍵值使用。列表不能用作鍵值,因為列表可以用其append()方法就地改變值。</P><P>最好把字典看成是一系列未排序的“鍵值:值”的集合,在同一字典內鍵值是互不相同的。一對空大括號產生一個空字典:{}。在大括號內加入用逗號分開的“鍵值:值”對可以在字典內加入初始的鍵值和值對,字典在輸出時也是這樣顯示的。對字典的主要操作是以某個鍵值保存一個值,以及給定鍵值后查找對應的值。也可以用del刪除某個鍵值:值對。如果用一個已有定義的鍵值保存某個值則原來的植被遺忘。用不存在的鍵值去查找會出錯。</P><P>字典對象的keys()方法返回字典中所有鍵值組成的列表,次序是隨機的。需要排序時只要對返回的鍵值列表使用sort()方法。為了檢查某個鍵值是否在字典中,使用字典的has_key()方法。</P><P>下面是字典使用的一個簡單例子:</P><PRE>&gt;&gt;&gt; tel = {'jack': 4098, 'sape': 4139}&gt;&gt;&gt; tel['guido'] = 4127&gt;&gt;&gt; tel{'sape': 4139, 'guido': 4127, 'jack': 4098}&gt;&gt;&gt; tel['jack']4098&gt;&gt;&gt; del tel['sape']&gt;&gt;&gt; tel['irv'] = 4127&gt;&gt;&gt; tel{'guido': 4127, 'irv': 4127, 'jack': 4098}&gt;&gt;&gt; tel.keys()['guido', 'irv', 'jack']&gt;&gt;&gt; tel.has_key('guido')1</PRE><H2>5.5 條件的進一步討論</H2><P>在while語句和if語句中使用的條件除了可以使用比較之外還可以包含其它的運算符。比較運算符“in”和“not in”可以檢查一個值是否在一個序列中。運算符“is”和“is not”比較兩個對象是否恰好是同一個對象,這只對象列表這樣的可變對象有意義。所有比較運算優先級相同,而比較運算的優先級比所有數值運算優先級低。</P><P>比較允許連寫,例如,a &lt; b == c檢查是否a小于等于b而且b等于c。</P><P>比較可以用邏輯運算符and和or連接起來,比較的結果(或其它任何邏輯表達式)可以用not取反。邏輯運算符又比所有比較運算符低,在邏輯運算符中,not優先級最高,or的優先級最低,所以“A and not B or C”應解釋為“(A and (not B)) or C”。當然,可以用括號來表示所需的組合條件。</P><P>邏輯運算符and和or稱為“短路”運算符:運算符兩側的表達式是先計算左邊的,如果左邊的結果已知則整體結果已知就不再計算右邊的表達式。例如,如果A和C為真而B為假則“A and B and C”不會計算表達式C。一般地,當短路運算符的運算結果不是用作邏輯值的時候返回的是最后求值的那個表達式的值。</P><P>可以把比較或其它邏輯表達式的結果賦給一個變量。例如:</P><PRE>&gt;&gt;&gt; string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'&gt;&gt;&gt; non_null = string1 or string2 or string3&gt;&gt;&gt; non_null'Trondheim'</PRE><P>注意Python和C不同,表達式中不能進行賦值。</P><H2>5.6 序列與其它類型的比較</H2><P>序列對象可以和其它同序列類型的對象比較。比較使用字典序:先比較最前面兩項,如果這兩項不同則結果可以確定;如果這兩項相同,就比較下面的兩項,如此下去,直到有一個序列到頭為止。如果某兩項本身也是同類型的序列,則進行遞歸的字典序比較。如果兩個序列的所有各項都相等,則這兩個序列相等。如果一個序列是另一個序列的一個初始子序列,短的一個是較小的一個。字符串的字典序比較按各個字符的ASCII次序進行。下面是一些序列比較的實例:</P><PRE>(1, 2, 3)              &lt; (1, 2, 4)[1, 2, 3]              &lt; [1, 2, 4]'ABC' &lt; 'C' &lt; 'Pascal' &lt; 'Python'(1, 2, 3, 4)           &lt; (1, 2, 4)(1, 2)                 &lt; (1, 2, -1)(1, 2, 3)              = (1.0, 2.0, 3.0)(1, 2, ('aa', 'ab'))   &lt; (1, 2, ('abc', 'a'), 4)</PRE><P>注意不同類型的對象比較目前也是合法的。結果是確定的但卻沒有什么意義:不同類型是按類型的名字排序的。所以,列表(list)總是小于字符串(string),字符串總是小于序表(tuple),等等。但是程序中不能依賴這樣的比較規則,語言實現可能會改變。不同的數值類型可以按數值來比較,所以0等于0.0,等等。</P></BODY><!-- Mirrored from www.math.pku.edu.cn/teachers/lidf/docs/Python/5.html by HTTrack Website Copier/3.x [XR&CO'2005], Fri, 08 Jul 2005 11:49:13 GMT --></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精彩视频在线观看不卡| 成人精品gif动图一区| 日韩三级伦理片妻子的秘密按摩| 日本中文字幕一区二区有限公司| 欧美一级久久久| 国产自产高清不卡| 中文字幕乱码亚洲精品一区| av在线不卡电影| 亚洲二区在线视频| 日韩一级二级三级| 国产盗摄女厕一区二区三区 | 久久久www免费人成精品| 成人在线综合网| 一区二区三区产品免费精品久久75| 欧美唯美清纯偷拍| 奇米精品一区二区三区四区 | 亚洲图片欧美色图| 欧美一区二区三区爱爱| 国产麻豆成人传媒免费观看| 国产精品国产精品国产专区不片| 色老汉一区二区三区| 日韩精品高清不卡| 国产视频在线观看一区二区三区 | 亚洲欧洲制服丝袜| 91精品在线麻豆| 国产成人8x视频一区二区| 亚洲视频一区二区在线| 欧美绝品在线观看成人午夜影视| 激情图片小说一区| 亚洲靠逼com| 日韩欧美国产综合在线一区二区三区| 国产91色综合久久免费分享| 悠悠色在线精品| 精品国产制服丝袜高跟| 99国产欧美久久久精品| 日韩精品福利网| 国产精品家庭影院| 日韩一区二区三区电影在线观看| 丁香婷婷综合激情五月色| 亚洲国产成人tv| 国产丝袜美腿一区二区三区| 欧美天天综合网| 高清国产一区二区三区| 亚洲精品国产成人久久av盗摄| 日韩欧美中文一区二区| 99久久99久久免费精品蜜臀| 美洲天堂一区二卡三卡四卡视频| 中文字幕日本乱码精品影院| 日韩午夜激情av| 91免费看`日韩一区二区| 麻豆国产精品一区二区三区| 亚洲欧洲制服丝袜| 精品va天堂亚洲国产| 欧美午夜一区二区三区| 懂色av一区二区三区蜜臀| 日韩综合一区二区| 亚洲视频在线观看一区| www国产精品av| 欧美日韩一级大片网址| 粉嫩13p一区二区三区| 首页亚洲欧美制服丝腿| 中文字幕亚洲电影| 久久综合国产精品| 欧美男人的天堂一二区| 成人黄页毛片网站| 精品亚洲aⅴ乱码一区二区三区| 洋洋成人永久网站入口| 亚洲国产精华液网站w| 日韩情涩欧美日韩视频| 欧美日韩一区二区三区四区| caoporen国产精品视频| 激情综合色播激情啊| 午夜影院在线观看欧美| 17c精品麻豆一区二区免费| 久久天天做天天爱综合色| 在线播放中文字幕一区| 在线亚洲一区观看| 99精品在线观看视频| 国产精品白丝jk黑袜喷水| 蜜桃精品视频在线| 图片区小说区区亚洲影院| 亚洲欧美一区二区三区久本道91| 欧美激情自拍偷拍| 久久久久久免费毛片精品| 日韩一区二区影院| 欧美一区二区在线免费播放| 欧美亚洲免费在线一区| 色综合天天综合在线视频| 成人国产精品免费| 丰满少妇在线播放bd日韩电影| 久久成人久久鬼色| 久久成人av少妇免费| 奇米影视一区二区三区小说| 婷婷成人综合网| 亚洲第一主播视频| 亚洲高清免费视频| 亚洲18影院在线观看| 亚洲精品老司机| 亚洲色图制服诱惑| 亚洲欧美日韩一区| 亚洲欧美日韩一区二区 | 亚洲精品va在线观看| 成人免费在线视频| 成人免费一区二区三区在线观看| 国产精品国产自产拍在线| 国产精品三级在线观看| 国产精品网曝门| 国产精品国产三级国产普通话99 | 国产麻豆午夜三级精品| 精品一二三四区| 国产乱人伦偷精品视频不卡| 国产美女一区二区三区| 国产呦萝稀缺另类资源| 国产精品亚洲专一区二区三区| 国产精品一区不卡| 高清国产一区二区| 99re热视频精品| 99久久综合精品| 色诱视频网站一区| 欧美亚州韩日在线看免费版国语版| 在线观看日韩国产| 欧美久久高跟鞋激| 日韩视频在线观看一区二区| 欧美成人vps| 国产亚洲一区字幕| 中文字幕一区二区三区乱码在线| 综合自拍亚洲综合图不卡区| 亚洲精品国产视频| 性欧美大战久久久久久久久| 奇米四色…亚洲| 国产剧情在线观看一区二区| 成人av电影在线| 欧美在线看片a免费观看| 欧美日韩日本视频| 欧美成人女星排名| 国产人伦精品一区二区| 亚洲日韩欧美一区二区在线| 亚洲午夜精品17c| 毛片av一区二区| 国产成人一区二区精品非洲| 99国产精品久| 欧美伦理影视网| 久久综合久久综合久久综合| 中文字幕在线不卡视频| 亚洲午夜久久久久久久久电影院| 美女诱惑一区二区| 成人免费不卡视频| 欧美在线不卡视频| 精品播放一区二区| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲va欧美va国产va天堂影院| 国内精品久久久久影院薰衣草| 99国产欧美另类久久久精品 | 国产欧美视频一区二区三区| 亚洲欧美日韩国产成人精品影院| 天天免费综合色| 国产精品一区二区无线| 日本乱人伦一区| 精品国产伦一区二区三区观看体验| 中文字幕成人网| 天堂av在线一区| 国产91在线观看丝袜| 欧美日韩精品三区| 久久免费午夜影院| 亚洲综合小说图片| 国产一区不卡视频| 欧美色图天堂网| 久久综合久久鬼色| 亚洲国产视频一区二区| 国产精品资源在线| 91精品1区2区| 久久婷婷国产综合国色天香| 亚洲综合色视频| 国产不卡在线视频| 欧美精品电影在线播放| 国产欧美精品区一区二区三区| 午夜精品免费在线| 成人激情小说网站| 日韩欧美亚洲国产精品字幕久久久| 中文字幕一区二区视频| 久久国产福利国产秒拍| 欧美主播一区二区三区美女| 久久久久久久一区| 日韩中文字幕av电影| www.66久久| 2020国产精品| 五月婷婷综合网| 91亚洲精品一区二区乱码| 欧美α欧美αv大片| 亚洲激情校园春色| 成人免费毛片嘿嘿连载视频| 欧美一级理论性理论a| 一区二区三区欧美激情| 国产99久久久精品| 日韩女优电影在线观看| 洋洋av久久久久久久一区| 成人午夜激情在线| 久久综合久久综合久久综合| 午夜欧美在线一二页| 91同城在线观看|