一、添加元素
上节我们学习了通过“+”号将两个序列连接,通过该方法也可以实现为列表添加元素。但是这种方法的执行速度要比直接使用列表对象的append()方法慢,所以建议在实现添加元素时,使用列表对象的append()方法实现。列表对象append()方法用于在列表末尾追加元素,语法格式如下:
listname.append(obj)
其中,listname为要添加元素的列表名称,obj为要添加到列表末尾的对象。
例如,定义一个包括四个元素的列表,然后应用append()方法向该列表的末尾再添加一个元素,可以用下面的代码:
verse = ["床前明月光","疑是地上霜","举头望明月","低头思故乡"]
len(verse)
verse.append("这是李白的《静夜思》")
len(verse)
print(verse)
我们在IDLE上运行一下:
下面我们通过一个具体的实例演示为列表添加元素的应用吧
场景模拟: 有个老师要求学生计算一组数列,其规则为:当某数是偶数时,将其除以二;如果是奇数,则先乘以3再加1。
首先,我们定义一个空列表,并定义一个表示初始值的变量a,让其等于6,然后创建无限循环,在该循环中,判断a是否为偶数,如果为偶数,则让其除以2,结果再赋值给a,否则让其乘以3在加1,结果也赋值给a,直到a等于1时,使用break语句跳出循环,另外将每次循环时,还需要把a的值添加到列表中,最后输出列表,代码如下:
numberlist=[]
a=6
while True:
if a%2==0:
a=a//2
else:
a=a*3+1
numberlist.append(a) #将生成的数添加到列表中
if a==1:
break
print("这个列表是:",numberlist)
结果:
这个列表是: [3, 10, 5, 16, 8, 4, 2, 1]
除了appen()方法可以向列表中添加元素外外,还有insert()方法向列表中指定的位置插入元素。但是由于该方法的执行效率没有append()高,所以不推荐这种方法。
上面介绍的是向列表中添加一个元素,如果想要将一个列表中的全部元素添加到另一个列表中,可以使用列表对象的extend()方法,语法格式如下:
listname。extend(sqe)
listname为原列表,sqe要添加的列表。语句执行后,sqe2的内容将追加到listname后面。
例如,创建两个列表,然后应用extend()方法将第一个列表添加到第二个列表中,具体代码如下:
verse1 = [1,2,3,4]
verse2 = ["a","b"]
verse2.extend(verse1)
print(verse2)
结果:
['a', 'b', 1, 2, 3, 4]
二、修改元素
修改列表中的元素只需要通过索引获取该元素,然后再为其重新赋值即可。例如,定义一个保存3个元素的列表,然后修改索引值为2的元素,代码如下:
verse = ["a","b","c"]
print(verse)
verse2 = "3"
print(verse2)
结果:
['a', 'b', 'c']
3
三、删除元素
删除元素有两种情况,一种是根据索引删除,另一种是根据元素值删除。
1.根据索引删除
删除列表中指定元素和删除列表类似,也可以使用del语句实现。所不同的是在指定列表名称时,换为列表元素,例如,定义一个保存3个元素的列表,删除最后一个元素,可以使用下面的代码:
verse = ["a","b","c"]
del verse[-1]
print(verse)
结果:
['a', 'b']
2.根据元素值删除元素
如果想要删除一个不确定位置的元素,可以使用列表对象的remove()方法实现,例如要删除列表中内容为“c”的元素,可以使用下面的代码:
verse = ["a","b","c"]
verse.remove("c")
print(verse)
结果:
['a', 'b']
使用remove()方法删除元素时,如果指定元素不存在,就会出现以下错误:
所以在使用remove()方法删除元素前,最好先判断该元素是否存在,改进后的代码如下:
verse = ["a","b","c","c"]
value = "c1"#指定要移除的元素
if verse.count(value):#判断要删除的元素是否存在
verse.remove(value)#移除指定的元素
print(verse)
列表对象count()方法用于判断指定元素出现的次数,返回结果为0时,表示不存在该元素。
执行上面的代码后,将显示下面的列表原有内容:
['a', 'b', 'c', 'c']