大神:小白,來來蛤织,匯報下對list和tuple這章學(xué)習(xí)有啥問題嗎雪营?
小白:我知道了list和tuple是有區(qū)別的,通過觀察好像是發(fā)現(xiàn)【】就是list,用()就是表示的tuple齿诞。
大神:符號表示是這樣的酸休,你覺得list和tuple的區(qū)別是什么呢?
小白:tuple是不可變的list祷杈。
大神:嗯斑司,這個階段理解到這里就可以了。(小白感覺后面肯定有坑)來但汞,如果給你一個數(shù)組L宿刮,怎么知道它有幾個元素呢互站?
小白:用len(L)就可以。
大神:好的有數(shù)組L=【1,2,3,4】糙置,你怎么得到第一個元素和最后一個元素呢云茸?
小白:L[0]和L[-1]
大神:好的,還有其他方式嗎谤饭?
小白:L[-4]和L[3]
大神:好的标捺,現(xiàn)在寫一段小程序,把第一個元素和最后一個元素進(jìn)行交換揉抵。
小白:
L[0] = 4
L[-1] = 1
大神:亡容。。冤今。闺兢。。戏罢。你怎么能手動把結(jié)果抄出來了屋谭,這很不編程,重新來寫龟糕。
小白:好吧桐磁,我再想辦法,因?yàn)槲抑肋@里有個坑等著我呢讲岁,如果我用L[0] = L[-1]以后我擂,我就失去L[0]了呢。
大神:對啊缓艳,所以你要想辦法實(shí)現(xiàn)靶DΑ(等著欣賞你進(jìn)坑姿勢呢)
小白:我用一加一減的辦法好了
L.append(L[0])
L.insert(0,L[-2])
L.pop(1)
L.pop(-2)
大神:嗯,目的算是實(shí)現(xiàn)了阶淘,但是語言太啰嗦衙吩,你試著引進(jìn)新變量來解決這個問題。
小白:我試試看
a = L[0]
L[0] = L[-1]
L[-1] = a
大神:好的溪窒,這個算是實(shí)現(xiàn)了坤塞,來你接著繼續(xù)在數(shù)組L最后添加一個數(shù)5,用insert的方法實(shí)現(xiàn)霉猛。
小白:
L.insert(-1,5)
大神:你實(shí)際運(yùn)行看見結(jié)果了嗎?
小白:我暈珠闰,為什么出現(xiàn)的結(jié)果是L=[1,2,3,5,4]?
大神:因?yàn)閕nsert真正插入的位置和你想象的不同哦(這言論太欠打了=-=)
小白:裝無辜狀惜浅,那我該怎么辦。伏嗜。坛悉。
大神:一臉嫌棄伐厌,自己想辦法啊。裸影。挣轨。
小白:冥思苦想以后決定
L.insert(len(L)+1,5)
大神:好的,list就到這吧轩猩,下面使用下tuple特性卷扮,你試試(a,b)=(1,2),然后你看看a和b的值。
小白:a=1,b=2
大神:好的均践,你現(xiàn)在用這個再寫一次前面的首尾交換程序晤锹。
小白:想了想,突然發(fā)現(xiàn)是這么簡潔
(L[0],L[-1])=(L[-1],L[0])
大神:好了彤委,你終于寫出了一句 Pythonic鞭铆,今天就到這吧,好好享受回顧下這個時刻焦影。
小白:好吧车遂,原來交換一個列表元素最后這么簡單和諧。斯辰。舶担。。椒涯。柄沮。我都要被虐死了。废岂。祖搓。。湖苞。拯欧。