大神:小白,来来,汇报下对list和tuple这章学习有啥问题吗?
小白:我知道了list和tuple是有区别的,通过观察好像是发现【】就是list,用()就是表示的tuple。
大神:符号表示是这样的,你觉得list和tuple的区别是什么呢?
小白:tuple是不可变的list。
大神:嗯,这个阶段理解到这里就可以了。(小白感觉后面肯定有坑)来,如果给你一个数组L,怎么知道它有几个元素呢?
小白:用len(L)就可以。
大神:好的有数组L=【1,2,3,4】,你怎么得到第一个元素和最后一个元素呢?
小白:L[0]和L[-1]
大神:好的,还有其他方式吗?
小白:L[-4]和L[3]
大神:好的,现在写一段小程序,把第一个元素和最后一个元素进行交换。
小白:
L[0] = 4
L[-1] = 1
大神:。。。。。。你怎么能手动把结果抄出来了,这很不编程,重新来写。
小白:好吧,我再想办法,因为我知道这里有个坑等着我呢,如果我用L[0] = L[-1]以后,我就失去L[0]了呢。
大神:对啊,所以你要想办法实现啊(等着欣赏你进坑姿势呢)
小白:我用一加一减的办法好了
L.append(L[0])
L.insert(0,L[-2])
L.pop(1)
L.pop(-2)
大神:嗯,目的算是实现了,但是语言太啰嗦,你试着引进新变量来解决这个问题。
小白:我试试看
a = L[0]
L[0] = L[-1]
L[-1] = a
大神:好的,这个算是实现了,来你接着继续在数组L最后添加一个数5,用insert的方法实现。
小白:
L.insert(-1,5)
大神:你实际运行看见结果了吗?
小白:我晕,为什么出现的结果是L=[1,2,3,5,4]?
大神:因为insert真正插入的位置和你想象的不同哦(这言论太欠打了=-=)
小白:装无辜状,那我该怎么办。。。
大神:一脸嫌弃,自己想办法啊。。。
小白:冥思苦想以后决定
L.insert(len(L)+1,5)
大神:好的,list就到这吧,下面使用下tuple特性,你试试(a,b)=(1,2),然后你看看a和b的值。
小白:a=1,b=2
大神:好的,你现在用这个再写一次前面的首尾交换程序。
小白:想了想,突然发现是这么简洁
(L[0],L[-1])=(L[-1],L[0])
大神:好了,你终于写出了一句 Pythonic,今天就到这吧,好好享受回顾下这个时刻。
小白:好吧,原来交换一个列表元素最后这么简单和谐。。。。。。我都要被虐死了。。。。。。