软件测试|Python删除列表元素的3种方法,你都会吗?

简介: 软件测试|Python删除列表元素的3种方法,你都会吗?

删除列表元素的3种方法

根据下标删除,使用del关键词

names = ['张三', '李四', '王五', '赵六‘, ’罗翔', '卢锡安']
print(names)

#删除第3个元素,del是delete的缩写
del names[2] 

#再次打印会发生王五不见了
print(names)

注:del是一个关键词,而不是一个函数所以不是使用小括号:del(names[2]),而是使用空格:del names[2]

删除报错

根据下标删除必须保证下标是存在的,否则程序会报错:

names = ['张三', '李四']

#删除第3个元素,这里会报IndexError错误,因为只有2个元素,无法删除第3个
del names[2]

# 报错:IndexError: list assignment index out of range

为了防止报错,让程序更加稳定可靠,我们可以先判断一下再删除:

names = ['张三', '李四']

#先使用len函数判断是否长度不小于3,才执行删除操作
if len(names) >= 3:
    del names[2]

使用pop方法删除

除了使用del关键词,还可以使用pop方法来删除元素,而且pop有几个特点:

  • pop不指定下标时,默认会删除最后一个
  • pop也可以指定下标,删除指定位置的元素。如果下标非法,也会抛出IndexError
  • pop会返回当前删掉的值给name变量,而del不能返回,仅仅是执行删除操作
names = ['张三', '李四', '王五', '赵六‘, ’罗翔', '卢锡安']

#删除最后1个元素
name = names.pop() 
print(name)
#删除倒数第2个元素
name = names.pop(-2)
print(name)

根据值删除

有时候我们不知道元素的下标,就想要删除某个特定的值,这时候使用remove方法。

names = ['张三', '李四', '王五', '赵六‘, ’罗翔', '卢锡安']

#删掉赵六
n = names.remove('赵六')
print(n)

删除值报错

如果被删除的值不存在,程序会报一个ValueError错误,因为要删除的不存在。

 names = ['张三', '李四', '王五', '赵六‘, ’罗翔', '卢锡安']

#下面一行会报ValueError错误,因为列表中没有王八。
n = names.remove('德莱文')

为了防止报错,我们可以使用in关键词,先判定要删除的值是否在列表中:

#使用in关键词判断王八是否在列表中
if '德莱文' in names:
    n = names.remove('德莱文')
    print(n)

in关键词是一个Python的操作符,用来判断前面的元素(王八)是否在后面的列表中(names)。in也可以应用本章后面学到的元组,字典中。

应用

写一段程序删除列表中所有的uzi:

#列表中可以包含重复的元素
champions = ['theshy', 'uzi', 'rookie', 'jackeylove', 'duke', 'faker', 'viper', 'uzi']

#通过while循环,判定names中是否还有uzi,如果还有就继续删除
while 'uzi' in champions:
    champions.remove('uzi')
print(champions)

以上,就是Python删除列表元素的3种方法,大家学会了吗?

相关文章
|
5天前
|
Python
探索Python中的列表推导式
【10月更文挑战第38天】本文深入探讨了Python中强大而简洁的编程工具——列表推导式。从基础使用到高级技巧,我们将一步步揭示如何利用这个特性来简化代码、提高效率。你将了解到,列表推导式不仅仅是编码的快捷方式,它还能帮助我们以更加Pythonic的方式思考问题。准备好让你的Python代码变得更加优雅和高效了吗?让我们开始吧!
|
15天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
32 2
|
20天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
24 1
|
11天前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
18天前
|
Python
SciPy 教程 之 SciPy 模块列表 16
SciPy教程之SciPy模块列表16 - 单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了力学单位的使用,如牛顿、磅力和千克力等。
15 0
|
19天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
15 0
|
19天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
16 0
|
19天前
|
C语言 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第24天】在Python编程的世界中,追求代码的简洁性和可读性是永恒的主题。列表推导式(List Comprehensions)作为Python语言的一个特色功能,提供了一种优雅且高效的方法来创建和处理列表。本文将深入探讨列表推导式的使用场景、语法结构以及如何通过它简化日常编程任务。
|
20天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy 教程之 SciPy 模块列表 13 - 单位类型。常量模块包含多种单位:公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例:`constants.zero_Celsius` 返回 273.15 开尔文,`constants.degree_Fahrenheit` 返回 0.5555555555555556。
14 0
|
7天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
36 3

热门文章

最新文章