我們接著來看列表的一下內(nèi)置方法。先定義一個列表,
l=['李星云','姬如雪','袁天罡']
首先來看按索引取值,這個我就不多講了吧,前面講基本數(shù)據(jù)類型的時候也講過,可以正向取,索引從0開始,也可以反向取,索引就從-1開始。
l=['李星云','姬如雪','袁天罡']
print(l[0], l[-1])
而且列表不但可以按索引取值,也可以按索引改值。
l=['李星云','姬如雪','袁天罡']
l[1]='九天圣姬'
print(l)
這就是相當(dāng)于改掉了l【1】的值。但是字符串就沒辦法按索引改值,因為字符串是不可變類型。
要注意,按索引改值必須是已經(jīng)存在的索引才行如果這個索引不存在,我想給這個不存在的索引新增一個值可不可以呢?
比如我把l[1]改成l[3],運行看是什么效果。
l=['李星云','姬如雪','袁天罡']
l[3]='九天圣姬'
print(l)
直接報錯,報的錯誤叫indexerror索引錯誤,索引值超出了范圍。所以要注意不管是取值操作還是賦值操作,只要索引不存在就會報錯。
如果我們要給列表添加新的值,就涉及到列表的另外一個功能了,叫appen追加。你想給l這個列表追加新的值,就直接寫一個l點append。
看到Pycharm的提示我們就知道了,這個append要我們給它攢一個參數(shù),比如我要給它加一個int類型5,然后打印l。
l=['李星云','姬如雪','袁天罡']
l.append(5)
print(l)
這樣列表了就多了一個數(shù)字5。append這個功能只會在列表的末尾添加值,比如我再append一個6,列表最后就又多了一個6。
l=['李星云','姬如雪','袁天罡']
l.append(5)
l.append(6)
print(l)
如果你不想在列表后面加值,就想在列表的中間,這就不能叫追加了。這叫插入,這個功能叫insert。
用法也是一樣,直接l點insert。這里要傳2個參數(shù), 第一個參數(shù)是索引,就是你要插入帶什么位置,第二個參數(shù)就是你要插入的值。
假如我要在姬如雪后面插入一個李淳風(fēng),姬如雪的索引是1對吧,要插入它的后面,索引自然就是2了。
l=['李星云','姬如雪','袁天罡']
l.insert(2,'李淳風(fēng)')
print(l)
打印結(jié)果就是李淳風(fēng)在姬如雪后面。
但是現(xiàn)在我想把李淳風(fēng)插到李星云前面,直接把索引改成0就可以了。
l=['李星云','姬如雪','袁天罡']
l.insert(0,'李淳風(fēng)')
print(l)
如果我再寫一個列表叫l(wèi)2,把l2插入l1里面怎么辦?
l1 = ['李星云', '姬如雪', '袁天罡']
l2 = ['梵音天', '妙成天', '玄凈天']
如果用append,會是什么結(jié)果。打印下看看。
結(jié)果就是l2直接嵌套進l1里面了,這不是我們想要的結(jié)果。
按照我們之前學(xué)的知識,也是可以實現(xiàn)的,用for循環(huán)。
l1 = ['李星云', '姬如雪', '袁天罡']
l2 = ['梵音天', '妙成天', '玄凈天']
for i in l2:
l1.append(i)
print(l1)
這樣也實現(xiàn)需求了。但是太麻煩。
在Python里面,一些常見的功能Python已經(jīng)幫我們實現(xiàn)了,有現(xiàn)車的方法我們就沒有必要再去重復(fù)造輪子了。
這個功能叫extend,用法和appe一樣。后面這個參數(shù)叫可迭代對象。
l1 = ['李星云', '姬如雪', '袁天罡']
l2 = ['梵音天', '妙成天', '玄凈天']
l1.extend(l2)
print(l1)
這樣就同樣實現(xiàn)了需求。
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python 列表詳解2