4-Python 列表

課程概要:
  1、列表的基本操作
  2悍募、列表常用函數(shù)
  3茧彤、列表和字符串的比較


1蒜茴、列表的基本操作

知識點:
  ◆ 列表(list)定義
  ◆ 索引和切片
  ◆ 基本操作

一、列表定義

◆ 對象類型:list
  ◆ 表示方法:[ ]
  ◆ 列表元素:“有容乃大”

Python列表中元素可以是任何Python 中的對象

例如:字符串 整數(shù) 浮點數(shù)

>>> a = ['laoshi', 25, 89.9]

>>> b = ['laoshi', 25, 89.9, ['laoshi', 25, 89.9]]

>>> a

['laoshi', 25, 89.9]

>>> b

['laoshi', 25, 89.9, ['laoshi', 25, 89.9]]

>>> c = ['Hello', 'Python']

>>> c         

['Hello', 'Python']

二浆西、索引和切片

◆ 索引:類似“字符串”
  ◆ 切片
  ◆ 反轉(zhuǎn)

 >>>a

['laoshi', 25, 89.9]

>>> b

['laoshi', 25, 89.9, ['laoshi', 25, 89.9]]

>>> c = ['Hello', 'Python']

>>> c

['Hello', 'Python']

>>> a

['laoshi', 25, 89.9]

>>> a[1]

25

>>> a[0]

'laoshi'

>>> a[2]

89.9

1粉私、索引

索引原則:左包括,右不包括

>>> a[0 : 2]

['laoshi', 25]

>>> a[: 2]

['laoshi', 25]

>>> a[0: ]

['laoshi', 25, 89.9]

>>> a[-1]                     #       -1 就是從右邊數(shù)起

89.9

>>> b

['laoshi', 25, 89.9, ['laoshi', 25, 89.9]]

>>> b[3]

['laoshi', 25, 89.9]

>>> b[3][0]                #       二維列表

'laoshi'

>>> a.index(25)

1

>>> a.index(89.9)

2

>>> a.index("Python")         #       列表沒有該元素近零,使用index則會報錯

Traceback (most recent call last):

  File
"<pyshell#27>", line 1, in <module>
  
a.index("Python")

ValueError: 'Python' is not in list

>>> a.index("laoshi")

0

2诺核、切片和反轉(zhuǎn)

>>> lst = [1, 2, 3, 4, 5, 6]

>>> lst[: : -1]               #       列表的反轉(zhuǎn)

[6, 5, 4, 3, 2, 1]

#       sice([start],stop[, step])
#       起始值     終點值     步長

>>> lst[0 : 4]           #   步長為1,為默認值久信,寫不寫都可以

[1, 2, 3, 4]

>>> lst[0 : 4 : 2]

[1, 3]

>>> lst[4 : 1 : -1]

[5, 4, 3]

>>> lst[: : -2]

[6, 4, 2]

>>> list(reversed(lst))                #    列表的反轉(zhuǎn)

[6, 5, 4, 3, 2, 1]

三窖杀、基本操作

◆ 列表是一種序列
  ◆ len
  ◆ +
  ◆ *
  ◆ in
  ◆ max()
  ◆ cmp()

>>> lst

[1, 2, 3, 4, 5, 6]

>>> len(lst)

6

>>> lst + a

[1, 2, 3, 4, 5, 6, 'laoshi', 25, 89.9]

>>> a * 3

['laoshi', 25, 89.9, 'laoshi', 25, 89.9, 'laoshi', 25, 89.9]

>>> max(lst)

6

>>> min(lst)

1

>>> a

['laoshi', 25, 89.9]

>>> max(a)

'laoshi'

>>> min(a)

25

>>> cmp(a, lst)                                     #       依次比較兩個列表中的元素,相同則向后再比較

1

2裙士、列表常用函數(shù)

知識點:
  ◆ 追加和擴展
  ◆ 其他函數(shù)

一入客、追加和擴展

◆ append
  ◆ extend
  ◆ 原地修改

1、append

>>>dir(list)

>>> help(list.append)

Help on method_descriptor:

append(...)

L.append(object) -- append object to end
>>> a = [1, 2]

>>> a.append(100)

>>> a

[1, 2, 100]

>>> a.append("Python")

>>> a

[1, 2, 100, 'Python']

>>> a.append(["google", "facebook"])

>>> a

[1, 2, 100, 'Python', ['google', 'facebook']]

>>> b = [1]

>>> id(b)

34938032

>>> b.append(5)

>>> id(b)                       #       原地修改

34938032

>>> b.append("laoqi")

>>> id(b)

34938032

>>> b

[1, 5, 'laoqi']

2腿椎、extend

>>> help(list.extend)

Help on method_descriptor:

extend(...)

    L.extend(iterable) --
extend list by appending elements from the iterable
>>> a = [1, 2, 3]

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

>>> a.extend(b)

>>> a

[1, 2, 3, 4, 5, 6]

>>> b

[4, 5, 6]

>>> a.extend("Python")

>>> a

[1, 2, 3, 4, 5, 6, 'P', 'y', 't', 'h', 'o', 'n']

>>> a.extend(5)             #       整數(shù)是不可迭代的

Traceback (most recent call last):

  File
"<pyshell#26>", line 1, in <module>

    a.extend(5)

TypeError: 'int' object is not iterable

3桌硫、查看對象是否是可迭代的

>>> alst = [1, 2]

>>> hasattr(alst, '__iter__')

True

>>> hasattr("Python", '__iter__')

False

>>> hasattr(5, '__iter__')

False
>>> a = [1, 2]

>>> a.append([4, 5])                  

>>> a                          #  使用append, 則[4, 5] 是作為一個整體進行追加

[1, 2, [4, 5]]

>>> a.extend([4, 5])

>>> a                     #  使用extend, 則將[4, 5]的每個元素取出來進行追加

[1, 2, [4, 5], 4, 5]

二、 其他函數(shù)

◆ count()
  ◆ index()
  ◆ insert()
  ◆ pop()    remove()
  ◆ reverse()
  ◆ sort()

1啃炸、count()

>>> help(list.count)

Help on method_descriptor:

count(...)

    L.count(value) ->
integer -- return number of occurrences of value
>>> a = [1, 1, 1, 2, 2, 1]

>>> a.count(1)

4

>>> a.count(2)

2

2铆隘、index()

>>> help(list.index)

Help on method_descriptor:

index(...)

    L.index(value, [start,
[stop]]) -> integer -- return first index of value.

    Raises ValueError if the
value is not present.
>>> a

[1, 1, 1, 2, 2, 1]

>>> a.index(1)                    #   返回該值出現(xiàn)的第一次的索引值

0

>>> a.index(2)

3

3、insert()

>>> help(list.insert)

Help on method_descriptor: 

insert(...)

    L.insert(index, object) --
insert object before index
>>> a = ["Python", "web"]

>>> a.insert(1, "yummy")                  #       插入到當前列表索引為1的元素前

>>> a

['Python', 'yummy', 'web']                  

>>> a.insert(0, 23415435)

>>> a

[23415435, 'Python', 'yummy', 'web']

4南用、pop()

>>> help(list.pop)

Help on method_descriptor:

pop(...)

    L.pop([index]) -> item
-- remove and return item at index (default last).

    Raises IndexError if list
is empty or index is out of range.
>>> a

[23415435, 'Python', 'yummy', 'web']

>>> a.pop(1)

'Python'

>>> a

[23415435, 'yummy', 'web']

>>> a.pop()

'web'

>>> a

[23415435, 'yummy']

>>> a.pop(2)

Traceback (most recent call last):

  File
"<pyshell#62>", line 1, in <module>

    a.pop(2)

IndexError: pop index out of range

5膀钠、remove()

>>> help(list.remove)

Help on method_descriptor: 

remove(...)

    L.remove(value) -- removefirst occurrence of value.

    Raises ValueError if the
value is not present.
>>> a = ["taishan", "huashan",
"huangshan"]

>>> a.remove("taishan")            #       只刪除第一個出現(xiàn)值

>>> a

['huashan', 'huangshan']

>>> a.remove("songshan")

Traceback (most recent call last):

  File
"<pyshell#67>", line 1, in <module>

   
a.remove("songshan")

ValueError: list.remove(x): x not in list

6、reverse()

>>> help(list.reverse)

Help on method_descriptor:

reverse(...)

    L.reverse() -- reverse *IN
PLACE*
>>> a = [1, 2, 3, 4]      #       反轉(zhuǎn)

>>> a[: : -1]

[4, 3, 2, 1]

>>> list(reversed(a))

[4, 3, 2, 1]

>>> a

[1, 2, 3, 4]

>>> a.reverse()

>>> a

[4, 3, 2, 1]

7裹虫、sort()

>>> help(list.sort)

Help on method_descriptor:

sort(...)

    L.sort(cmp=None, key=None,
reverse=False) -- stable sort *IN PLACE*;

    cmp(x, y) -> -1, 0, 1
>>> help(sorted)

Help on built-in function sorted in module __builtin__:

sorted(...)

    sorted(iterable, cmp=None,
key=None, reverse=False) --> new sorted list
>>> a = [5, 3, 9, 2]

>>> a.sort()                                           #       升序

>>> a

[2, 3, 5, 9]

>>> b = [9, 2, 7, 4]

>>> b.sort(reverse=True)                            #       降序

>>> b

[9, 7, 4, 2]

Python排序相關(guān)文檔: https://docs.python.org/2.7/howto/index.html


3肿嘲、列表和字符串比較

知識點:
  ◆ 序列
  ◆ 列表和字符串的比較

一、序列

◆ 序列:數(shù)學上恒界,序列是被排成一列的對象(或事件)睦刃;這樣,每個元素不是在其他元素之前十酣,就是在其他元素之后涩拙。這里,元素之間的順序非常重要耸采。(來源于《維基百科》)

二兴泥、列表和字符串的比較

◆ 字符串是不可改變的
  ◆ 列表是可以原地修改的
  ◆ list() 和 str() 的使用

>>> a = [1, 2, 3]

>>> id(a)

34938032

>>> a.append(4)

>>> a

[1, 2, 3, 4]

>>> id(a)

34938032

>>> a[1] = 9        #       列表是可修改的

>>> a

[1, 9, 3, 4]
>>> b = "Python"

>>> b[1] = 'w'                  #       字符串不可修改的

Traceback (most recent call last):

  File
"<pyshell#91>", line 1, in <module>

    b[1] = 'w'

TypeError: 'str' object does not support item assignment

非要修改

>>> b[0] + 'w' + b[2:]

'Pwthon'

>>> b

'Python'
>>> a              #  一維列表

[1, 9, 3, 4]

>>> m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]        #   多維列表

>>> m[1]

[4, 5, 6]

>>> m[1][1]

5

>>> m[1][0]

4
>>> b

'Python'

>>> list(b)

['P', 'y', 't', 'h', 'o', 'n']

>>> a = "Python is good"

>>> a.split(" ")

['Python', 'is', 'good']

>>> c = list(b)

>>> c

['P', 'y', 't', 'h', 'o', 'n']

>>> " ".join(c)

'P y t h o n'

>>> "".join(c)

'Python'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市虾宇,隨后出現(xiàn)的幾起案子搓彻,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旭贬,死亡現(xiàn)場離奇詭異怔接,居然都是意外死亡,警方通過查閱死者的電腦和手機稀轨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門扼脐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人奋刽,你說我怎么就攤上這事瓦侮。” “怎么了佣谐?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵肚吏,是天一觀的道長。 經(jīng)常有香客問我狭魂,道長罚攀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任趁蕊,我火速辦了婚禮坞生,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘掷伙。我一直安慰自己是己,他們只是感情好,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布任柜。 她就那樣靜靜地躺著卒废,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宙地。 梳的紋絲不亂的頭發(fā)上摔认,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音宅粥,去河邊找鬼参袱。 笑死,一個胖子當著我的面吹牛秽梅,可吹牛的內(nèi)容都是我干的抹蚀。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼企垦,長吁一口氣:“原來是場噩夢啊……” “哼环壤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钞诡,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤郑现,失蹤者是張志新(化名)和其女友劉穎湃崩,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體接箫,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡攒读,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了辛友。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片整陌。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瞎领,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情随夸,我是刑警寧澤九默,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站宾毒,受9級特大地震影響驼修,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诈铛,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一乙各、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧幢竹,春花似錦耳峦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至邑飒,卻和暖如春循签,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疙咸。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工县匠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撒轮。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓乞旦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腔召。 傳聞我的和親對象是個殘疾皇子杆查,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容