python的學(xué)習(xí) 4月10日

元組類型比較也是用這種算法.最后我們以這種算法的關(guān)鍵點(diǎn)作為本節(jié)的

結(jié)束:

1. 對兩個(gè)列表的元素進(jìn)行比較.

2. 如果比較的元素是同類型的,則比較其值,返回結(jié)果.

3. 如果兩個(gè)元素不是同一種類型,則檢查它們是否是數(shù)字.

a. 如果是數(shù)字,執(zhí)行必要的數(shù)字強(qiáng)制類型轉(zhuǎn)換,然后比較.

b. 如果有一方的元素是數(shù)字,則另一方的元素"大"(數(shù)字是"最小的")

c. 否則,通過類型名字的字母順序進(jìn)行比較.

4. 如果有一個(gè)列表首先到達(dá)末尾,則另一個(gè)長一點(diǎn)的列表"大".

5. 如果我們用盡了兩個(gè)列表的元素而且所有元素都是相等的,那么結(jié)果就是個(gè)平局,就

是說返回一個(gè) 0.


len()? ? >>> len(num_list)=4




排序

sorted() and reversed()

>>> s = ['They', 'stamp', 'them', 'when', "they're", 'small']

>>> for t in reversed(s):

...? print t,

...

small they're when them stamp They

>>> sorted(s)

['They', 'small', 'stamp', 'them', "they're", 'when']

初學(xué)者使用字符串, 應(yīng)該注意是如何把單引號和雙引號的使用矛盾和諧掉.同時(shí)還要注意字

符串排序使用的是字典序,而不是字母序(字母'T'的 ASCII 碼值要比字母'a'的還要靠前)


enumerate() and zip()

>>> albums = ['tales', 'robot', 'pyramid']

>>> for i, album in enumerate(albums):

... print i, album

...

0 tales

1 robot

2 pyramid

>>>

>>> fn = ['ian', 'stuart', 'david']

>>> ln = ['bairnson', 'elliott', 'paton']

>>>

>>> for i, j in zip(fn, ln):

... print ('%s %s' % (i,j)).title()

...

Ian Bairnson Stuart Elliott David Paton

sum()

>>> a = [6, 4, 5]

>>> reduce(operator.add, a)

15

>>> sum(a)

15

>>> sum(a, 5)

20

>>> a = [6., 4., 5.]

>>> sum(a)

15.0



列表和元組間的轉(zhuǎn)換函數(shù)

>>> aList = ['tao', 93, 99, 'time']

>>> aTuple = tuple(aList)

>>> aList, aTuple

(['tao', 93, 99, 'time'], ('tao', 93, 99, 'time'))

>>> aList == aTuple

False

>>> anotherList = list(aTuple)

>>> aList == anotherList

True

>>> aList is anotherList

False

>>> [id(x) for x in aList, aTuple, anotherList]

[10903800, 11794448, 11721544]

正如我們在本章的開頭所討論的,無論 list()還是 tuple()都不可能做完全的轉(zhuǎn)換(見

6.1.2 節(jié)).也就是說,你傳給 tuple()的一個(gè)列表對象不可能變成一個(gè)元組,而你傳給 list()的

對象也不可能真正的變成一個(gè)列表.雖然前后兩個(gè)對象(原來的和新的對象)有著相同的數(shù)據(jù)集

合(所以相等 == ),但是變量指向的卻不是同一個(gè)對象了(所以執(zhí)行 is 操作會返回 false).還

要注意,即使它們的所有的值都相同,一個(gè)列表也不可能"等于"一個(gè)元組.


面向?qū)ο蟮牧斜砗瘮?shù)用法

表 6.11 列表類型內(nèi)建函數(shù)

List Method Operation

list.append(obj)? 向列表中添加一個(gè)對象 obj

list.count(obj) 返回一個(gè)對象 obj 在列表中出現(xiàn)的次數(shù)

list.extend(seq)

a? 把序列 seq 的內(nèi)容添加到列表中

list.index(obj, i=0,

j=len(list))? 返回 list[k] == obj 的 k 值,并且 k 的范圍在 i<=k

reverse=False)

b 以指定的方式排序列表中的成員,如果 func 和 key 參數(shù)指定,

則按照指定的方式比較各個(gè)元素,如果 reverse 標(biāo)志被置為

True,則列表以反序排列.

a.? Python1.5.2 加入的特性.

b.? key 和 reverse 特性在 Python2.4 中新添.

>>> music_media = [45]

>>> music_media

[45]

>>>

>>> music_media.insert(0, 'compact disc')

>>> music_media

['compact disc', 45]

>>>

>>> music_media.append('long playing record')

>>> music_media

['compact disc', 45, 'long playing record']

>>>

>>> music_media.insert(2, '8-track tape')

>>> music_media

['compact disc', 45, '8-track tape', 'long playing record']

在前面的例子中,我們用一個(gè)元素初始化了一個(gè)列表,然后當(dāng)向列表插入元素,或在尾部追

加新的元素后,都會去檢查這個(gè)列表.現(xiàn)在確認(rèn)一下一個(gè)值是否在我們的列表中,并看看如何找

出元素在列表中的索引值.我們用 in 操作符和 index()方法實(shí)現(xiàn)這兩個(gè)需求.

>>> 'cassette' in music_media

False

>>> 'compact disc' in music_media

True

>>> music_media.index(45)

1

>>> music_media.index('8-track tape')



理解 ?變成短句子 ?復(fù)述 ?講解 ?鉤子 ?邏輯


元組

創(chuàng)建一個(gè)元組并給他賦值實(shí)際上跟創(chuàng)建一個(gè)列表并給它賦值完全一樣,除了一點(diǎn),只有一個(gè)

元素的元組需要在元組分割符里面加一個(gè)逗號(,)用以防止跟普通的分組操作符混淆.不要忘了

它是一個(gè)工廠方法!

>>> aTuple = (123, 'abc', 4.56, ['inner', 'tuple'], 7-9j)

>>> anotherTuple = (None, 'something to see here')

>>> print aTuple

(123, 'abc', 4.56, ['inner', 'tuple'], (7-9j))

>>> print anotherTuple

(None, 'something to see here')

>>> emptiestPossibleTuple = (None,)

>>> print emptiestPossibleTuple

(None,)

>>> tuple('bar')

('b', 'a', 'r')

如何訪問元組中的值

元組的切片操作跟列表一樣,用方括號作為切片操符([]),里面寫上索引值或者索引范圍.

>>> aTuple[1:4]

('abc', 4.56, ['inner', 'tuple'])

>>> aTuple[:3]

(123, 'abc', 4.56)

>>> aTuple[3][1]

'tuple'


淺拷貝只是拷貝了一個(gè)對象的指針,比如說 a=10? b=a? c=a,如果是淺拷貝,當(dāng)b中引用的a改變時(shí),c中的也會改變,深拷貝則不會,核心模塊: copy?

我們剛才描述的淺拷貝和深拷貝操作都可以在 copy 模塊中找到.其實(shí) copy 模塊中只有兩

個(gè)函數(shù)可用:copy()進(jìn)行淺拷貝操作,而 deepcopy()進(jìn)行深拷貝操作.




最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫完項(xiàng)目接著寫寫一名3年工作經(jīng)驗(yàn)的J...
    燕京博士閱讀 7,806評論 1 118
  • 基礎(chǔ)1.r''表示''內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義2.'''...'''表示多行內(nèi)容3. 布爾值:True、False(...
    neo已經(jīng)被使用閱讀 1,888評論 0 5
  • 一、python 變量和數(shù)據(jù)類型 1.整數(shù) Python可以處理任意大小的整數(shù),當(dāng)然包括負(fù)整數(shù),在Python程序...
    績重KF閱讀 2,019評論 0 1
  • 個(gè)人筆記,方便自己查閱使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik閱讀 67,950評論 0 5
  • 回憶都會褪色,平凡與我們不期而遇,但是總會有閃光的時(shí)刻讓我們變得與眾不同,讓過去變得有跡可循,我愿意在那些時(shí)刻到來...
    我因何雨聲閱讀 398評論 0 0

友情鏈接更多精彩內(nèi)容