1.根据索引值获取列表中某位置的元素(编号从0开始):
>>> a=['Jasper','Kimi','Swan','Ursula','Elena']
>>> a[0]
'Jasper'
2.交换列表中元素的位置(两种方法)
#方法一
>>> a=['Jasper','Kimi','Swan','Ursula','Elena']
>>> a[0],a[1],a[2]=a[2],a[0],a[1]
>>> a
['Swan', 'Jasper', 'Kimi', 'Ursula', 'Elena']
#方法二
>>> a=['Jasper','Kimi','Swan','Ursula','Elena']
>>> temp=a[0]
>>> a[0]=a[1]
>>> a[1]=temp
>>> a
['Kimi', 'Jasper', 'Swan', 'Ursula', 'Elena']
3.删除列表中的元素:
(1)remove(key):函数的参数必须是列表中存在的确定的某个元素
(2)del list[index]:删除列表中某个位置的元素;del list:删除整个列表
(3)pop():删除列表的最后一个元素并返回这个元素的值;pop(index):删除列表某个位置上的元素并返回这个元素的值
a=['Jasper','Kimi','Swan','Ursula','Elena']
>>> #remove(key)
>>> a.remove('Jasper')
>>> a
['Kimi', 'Swan', 'Ursula', 'Elena']
>>> #del list[index]
>>> del a[2]
>>> a
['Kimi', 'Swan', 'Elena']
>>> #del list
>>> del a
>>> a
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
a
NameError: name 'a' is not defined
>>> a=['Jasper','Kimi','Swan','Ursula','Elena']
>>> #pop()
>>> a.pop()
'Elena'
>>> a
['Jasper', 'Kimi', 'Swan', 'Ursula']
>>> #pop(index)
>>> a.pop(2)
'Swan'
>>> a
['Jasper', 'Kimi', 'Ursula']
4.列表分片:一次从列表中获取多个连续元素,返回值为一个列表,
格式:list[start:stop],从编号start开始,获取stop - start个元素。
>>> a=['Jasper','Kimi','Swan','Ursula']
>>> #列表分片:
>>> a[1:3]
['Kimi', 'Swan']
>>> a[1:3] #从编号1开始获取3-1=2个元素
['Kimi', 'Swan']
>>> #从开始获取元素
>>> a[:2]
['Jasper', 'Kimi']
>>> #获取从某一位置到最后一个元素
>>> a[3:]
['Ursula']
>>> #获取整个列表
>>> b=a[:] #列表的拷贝
>>> b
['Jasper', 'Kimi', 'Swan', 'Ursula']
>>> c=a #只是给列表a多起了一个名字,c与a是指向同一片列表空间的
>>> c
['Jasper', 'Kimi', 'Swan', 'Ursula']
5.这段代码: (x<y and [x] or [y])[0]是什么意思?先来看一下下面的运行结果:(下列代码中[y]相当于[1],也就是一个只含有一个元素的列表)
#代码段1
>>> x=0;y=1
>>> (x>y and [x] or [y])[0] #False and [x] or [y] = [y]
1
>>> (x<y and [x] or [y])[0] #True and [x] or [y] =[x]
0
#代码段2
>>> (x<y and x or y)
1
#代码段3
True
>>> not [0]
False
观察代码段1的最后一段代码的运行结果和代码段2的运行结果为什么不同?
代码段3说明只要列表不为空,那么就为True。然后根据逻辑运算得出(x>y and [x] or [y])的结果为[y],[y][0]=1;(x<y and [x] or [y])[0]的结果为[x],[x][0]=0