11列表元素的删除及其他操作

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

  • 24
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值