1.列表元素删除
class1 = ['李白','王维','孟浩然','王安石','王昌龄','王之涣','苏东坡']
我们要删除列表中某个元素时,可以用列表的 pop() 方法实现。pop() 的功能是:返回列表指定位置的元素,并删除这个元素。 pop() 可以传入一个参数,表示要删除的元素的索引,如果不传入,就默认为最后一个元素的索引。
class1.pop()
print(class1)
#输出: ['李白','王维','孟浩然','王安石','王昌龄','王之涣']
以上的代码中,第一行 pop() 括号内也可以填上苏东坡的索引,写成 students.pop(6),这两种写法是一样的,都会将苏东坡从列表中移除,而 class1 的名单上变为 6 个人。
如果需要统计列表的元素个数(又叫列表的长度),可以使用len()函数。该函数的格式为:
a=len(class1)
print(a)
#输出:6
因为列表class1有6个元素,所以代码运行为:6
如果需要删除列表中间的某个元素,则要用到del 语句来操作列表,格式为:del 列表[索引]。
del 列表[索引] 意思就是“删除列表中指定索引的元素”,支持正向和反向索引。
比如我们知道王安石是列表的第四个元素,要把他删除,那么:
del class1[3]
print(class1)
#输出:['李白', '王维', '孟浩然', '王昌龄', '王之涣']
print(len(class1))
#输出:5
这种方法是通过元素索引,删除这个找到的元素。那有没有方法通过值来删除元素呢?有的。下面我们就来介绍 remove() 方法。通过 列表.remove(值) 的方式,把该元素删除,下面我们把王维删除掉:
class1.remove('王维')
print(class1)
#输出:['李白', '孟浩然', '王昌龄', '王之涣']
以上,我们就通过 pop() 方法、del 语句以及 remove() 方法,满足不同需求。
2.提取列表的多个元素----列表切片
如果想提取列表的多个元素,就要用到列表切片,其一般语法格式为:
列表名[序号1:序号4]
其中,序号1的元素能取到,序号4的元素则取不到,俗称“左闭右开”,如:
class1 = ['李白','王维','孟浩然','王安石','王昌龄','王之涣','苏东坡']
a=class1[1:4]
print(a)
#其中序号为1的王维可以取到,而序号为4的王昌龄则是取不到的:运行结果如下
#输出: ['王维','孟浩然','王安石']
当不确定列表元素的序号时,可以只写一个序号:
a=class1[1:]
#提取第二个元素到最后一个元素
print(a)
#输出:['王维','孟浩然','王安石','王昌龄','王之涣','苏东坡']
b=class1[-3: ]
#提取倒数第三个元素到最后一个元素
print(b)
#输出:['王昌龄','王之涣','苏东坡']
c=class1[ :-2]
#提取倒数第二个元素之前的所有元素(不包含倒数第二个元素)
print(c)
#输出:['李白','王维','孟浩然','王安石','王昌龄']
3.列表的其他使用方法
①统计元素出现次数
count()方法可以统计元素在列表中出现的次数:
class1 = ['李白','王维','孟浩然','王安石','王昌龄','王之涣','苏东坡','李白']
print(class1.count('李白'))
#输出:2
②元素排序
sort() 是一个很强大的方法,可以对列表内的元素进行排序,直接调用列表名.sort() 后,Python 会使用默认的排序方法对其排序。不同数据类型的排序方法不一样,我们来看看对字符串列表和数值列表进行排序的不同:
class = ["huang", "chen", "li"]
class.sort()
print(class)
# 输出:['chen', 'huang', 'li']
number = [8, 2, 5, 9]
number.sort()
print(number)
# 输出:[2, 5, 8, 9]
字符串列表的排序按照每个元素首字母的顺序来排序,比如h 在 l 前面,c在 h 前面,可以简单地按照 26 个字母顺序表即可;
数值列表的排序是按照数值大小从小到大进行排序,比如 1 比 2 小,所以 1 在 2 前面。
③反转
reverse()方法可以将列表顺序反转:
class=['李白','杜甫','王维','王安石']
class.reverse()
print(class)
#输出: ['王安石','王维','杜甫','李白']
④复制
copy() 方法可以复制一个同样的列表:
class=['李白','杜甫','王维','王安石']
class1=class.copy()
print(class1)
#输出:['李白','杜甫','王维','王安石']
⑤清空
clear() 方法可以清空列表
class=['李白','杜甫','王维','王安石']
class.clear()
print(class)
#输出:[ ]
⑥列表求和
列表求和可用sum()
函数。将需要求和的列表传入 sum()
函数即可得到列表中所有元素相加后的值。
scores = [66,55,100,88,55]
sum_scores=sum(scores)
print(sum_scores)
#输出:364