Python的基本數(shù)據(jù)類型——List

列表(list)是python中重要的數(shù)據(jù)類型搏予,有點類似其它語言的數(shù)組且警,python中的列表可以是任意對象的集合

怎么定義一個列表

可以在[ ]中使用逗號隔開對象來定義列表

a=['Hello','world']
print(type(a))
# 輸出 list

在python中列表很靈活粉捻,具有以下特點

  • 可以包含任意對象
a=['hello',1,2,True,[0,'',1.234]]
print(a)

# 輸出 
['hello', 1, 2, True, [0, '', 1.234]]
  • 可以無限嵌套
a=[['a','b','c',['d','e',['f',['g',['h']]]]]]
print(type(a))
# 輸出 list
  • 列表是有序的
    試想一下[1,2,3]和[3,2,1]相等嗎
a=[1,2,3]
b=[3,2,1]
print(a==b)
# 輸出 False

print(a is b)
# 輸出 False
  • 可以通過索引和切片的方式訪問列表中的元素
    列表和string一樣可以通過索引和切片的方式里面的元素,在列表中也可以使用負數(shù)的方式訪問
a=[1,2,3,'Hello world']
print(a[0])
# 輸出 1

print(a[-1])
# 輸出 Hello world

print(a[-1][:5])
# 輸出 Hello

print(a[:2])
# 輸出 [1,2]

print(a[3:4])
print(a[-1:])
# 上面的效果一樣
# 輸出 ['Hello world']

小思考

# 怎么獲取 7
a=[1,2,3,[4,5,[6,[7]]]]

.
.
.
print(a[3][2][1][0])
或
print(a[-1][-1][-1][0])

在列表中添加修改元素

列表是可變的斑芜,這意味著我們可以對列表里的元素修改肩刃、添加、刪除

  • 通過索引和切片的方式修改列表
a=[1,2,3,4,5,6]
a[1]=a[1]+1
print(a)
# 輸出 [1, 3, 3, 4, 5, 6]

a[-1]=10
print(a)
# 輸出 [1, 3, 3, 4, 5, 10]

a[:3]=['a','b','c']
# 輸出 ['a', 'b', 'c', 4, 5, 10]
  • 通過append( )杏头、extend( )盈包、+ 、insert( )添加元素
    上訴的4種方法都可以給列表添加元素醇王,但是他們有什么不同呢呢燥?我們通過代碼來演示一下

使用append 添加元素

a=[1,2,3,4]

a.append(5)
print(a)
# 輸出 [1,2,3,4,5]

a.append([6,7,8])
print(a)
# 輸出 [1, 2, 3, 4, 5, [6, 7, 8]]

使用extend 添加元素

a=[1,2,3,4]

a.extend(5)
# 輸出 [1,2,3,4,5]

a.extend([6,7,8])
# 輸出 [1,2,3,4,5,6,7,8]

使用 + 添加元素

a=[1,2,3,4]

a=a+5 
# 這樣寫會報錯 因為一個list不能與int相加

a=a+[5] 或者簡寫成a+=[5]
print(a)
# 輸出 [1,2,3,4,5]

a+=[6,7,8]
print(a)
# 輸出 [1, 2, 3, 4, 5, 6, 7, 8]

使用insert 添加元素

a=[1,2,3,4]

a.insert(4,5)
print(a)
# 輸出 [1,2,3,4,5]

a.insert(1,10)
print(a)
#  輸出 [1,10,3,4,5]

a.insert(5,[6,7,8])
print(a)
#  輸出 [1,10,3,4,5,[6,7,8]]

通過上面的演示我們可以很清楚的看出append( )、insert( )、extend( )、+ 之間的區(qū)別伦吠,實際使用過程中可以根據(jù)自己的實際情況,選擇適當?shù)姆椒?/p>

  • 通過del力试、clear( )、remove( )排嫌、pop( ) 刪除list中的元素

使用del刪除元素

a=[1,2,3,4]

del a[0]
print(a)
# 輸出 [2,3,4]

del a[0:2]
print(a)
# 輸出 [4]

使用clear( ) 刪除元素

a=[1,2,3,4]

a.clear()
print(a)
# 輸出 []

使用remove( ) 刪除元素

a=['a','b','c','d']

a.remove('d')
# 輸出 ['a', 'b', 'c']

使用pop( ) 刪除元素

a=['a','b','c','d']

a.pop()
# 返回 'd'
# 輸出 ['a', 'b', 'c']

a.pop(2) 或 a.pop(-1)
# 返回 'c'
# 輸出 ['a', 'b']

通過上面的案例我們可以總結出以下幾點

  • del 可以通過索引和切片刪除列表中的元素
  • clear 可以清空列表
  • remove 可以刪除指定列表中指定的元素
  • pop 也可以通過索引刪除列表中的元素畸裳,而且會返回被刪除的元素

列表中常用的方法

index( ) 返回元素的索引

a=['a,'b','c']
a.index('b')
print(a)
# 輸出 1

count( ) 統(tǒng)計列表中的指定元素數(shù)量

a=['a','b','c']
a.extend('a')
print(a.count('a'))
#  輸出 2

sort( ) 給列表中的元素排序

a=[3,4,2,5,6,22,54,78,1,0]
print(a.sort())
# 輸出  [0, 1, 2, 3, 4, 5, 6, 22, 54, 78]

# 降序
print(a.sort(reverse=True))
# 輸出 [78, 54, 22, 6, 5, 4, 3, 2, 1, 0]

sort( )不返回任何值,而 sorted( )返回可迭代列表淳地。

a=[3,4,2,5,6,22,54,78,1,0]

sorted(a)
# 返回 [0, 1, 2, 3, 4, 5, 6, 22, 54, 78]

sorted(a, reverse=True)
# 返回 [78, 54, 22, 6, 5, 4, 3, 2, 1, 0]

print(a)
# 輸出 [3, 4, 2, 5, 6, 22, 54, 78, 1, 0]

reverse( ) 給列表中的元素反向排序

a=['d', 3, 5, 1, 'a']
a.reverse()

print(a)
# 輸出 ['a', 1, 5, 3, 'd']

更多內(nèi)置函數(shù)

方法 描述
all( ) 判斷列表中的所有元素是否全部是true
any( ) 判斷列表中的任意元素是否包含true
len( ) 返回列表的長度
max( ) 返回列表元素中最大值
min( ) 返回列表元素中最小值
sum( ) 返回列表元素的總和

怎么判斷一個元素是否存在于列表中

  • 第一種方法遍歷
a=[1,2,3,4,5]
for x in a:
    if x==3
       print(True)

  • 通過in或者not in實現(xiàn)
a=[1,2,3]
print(1 in a)
# 輸出 True

print(5 not in a)
# 輸出 True

字符串和列表之間的相互轉化

字符串轉列表

a='1,2,3,4,5'
b=a.split(',')

print(a)
# 輸出 ['1', '2', '3', '4', '5']

a='A|B|C|D|E'
b=a.split('|')

print(b)
# 輸出 ['A','B','C','D','E']

list轉字符串

a=['1', '2', '3', '4', '5']
b=a.join(',')

print(b)
#  輸出 '1,2,3,4,5'

a=['A','B','C','D','E']
b=a.join('|')

print(b)
#  輸出 'A|B|C|D|E'

通過上面的這些操作我們可以看出python中的列表很靈活也很強大怖糊,官方也為列表提供了很多內(nèi)置方法,大家也不需要死記硬背颇象,先大致有個了解伍伤,用到的時候查查手冊,多敲敲代碼自然就記住了

總結:本篇文章主要分享了python中列表的創(chuàng)建方法以及列表的一些基本操作遣钳,重點需要掌握列表的基本特性和一些內(nèi)置方法

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扰魂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌劝评,老刑警劉巖姐直,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蒋畜,居然都是意外死亡声畏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門姻成,熙熙樓的掌柜王于貴愁眉苦臉地迎上來插龄,“玉大人,你說我怎么就攤上這事佣渴”枥牵” “怎么了初斑?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵辛润,是天一觀的道長。 經(jīng)常有香客問我见秤,道長砂竖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任鹃答,我火速辦了婚禮乎澄,結果婚禮上,老公的妹妹穿的比我還像新娘测摔。我一直安慰自己置济,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布锋八。 她就那樣靜靜地躺著浙于,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挟纱。 梳的紋絲不亂的頭發(fā)上羞酗,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音紊服,去河邊找鬼檀轨。 笑死,一個胖子當著我的面吹牛欺嗤,可吹牛的內(nèi)容都是我干的参萄。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼煎饼,長吁一口氣:“原來是場噩夢啊……” “哼讹挎!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤淤袜,失蹤者是張志新(化名)和其女友劉穎痒谴,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铡羡,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡积蔚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了烦周。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尽爆。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖读慎,靈堂內(nèi)的尸體忽然破棺而出漱贱,到底是詐尸還是另有隱情,我是刑警寧澤夭委,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布幅狮,位于F島的核電站,受9級特大地震影響株灸,放射性物質發(fā)生泄漏崇摄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一慌烧、第九天 我趴在偏房一處隱蔽的房頂上張望逐抑。 院中可真熱鬧,春花似錦屹蚊、人聲如沸厕氨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽命斧。三九已至,卻和暖如春玄括,著一層夾襖步出監(jiān)牢的瞬間冯丙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工遭京, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留胃惜,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓哪雕,卻偏偏與公主長得像船殉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子斯嚎,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

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