iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python怎么删除列表中特定元素
  • 210
分享到

python怎么删除列表中特定元素

2023-06-30 14:06:34 210人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python怎么删除列表中特定元素”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么删除列表中特定元素”文章能帮助大家解决问题。题目如下:给定一个仅包含大小写字母和空格

这篇文章主要介绍“python怎么删除列表中特定元素”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么删除列表中特定元素”文章能帮助大家解决问题。

题目如下:

给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。

如果不存在最后一个单词,请返回 0 。

说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。

示例:

输入: "Hello World"
输出: 5

思路

题目要求给一个字符串s,s仅包含字母和空格字符,要求返回最后一个单词的长度,考虑如下几点:

  • 如果s是空字符,即s=“”,此时应该返回0;

  • 如果s只包含空格字符,即s=" ",此时也应该返回0;

  • 如果s既包含字母也包含空格(或者只包含字母),可以通过split()函数,用一个空格字符切割,这样就可以得到一个列表,这个列表只由连续的字母和空字符组成,然后把列表中的所有空字符删除,最后把列表中的最后一项的长度返回即可;

所以现在的问题就转化为:如何删除一个列表中的特定元素,这里的话,就是删除列表中的空字符,即""

方法1

借助一个临时列表,把非空元素提取到临时列表中,然后取出临时列表最后一项,返回其长度即可

这是最笨的方法,实际运行时也是最耗时的方法:

class Solution(object):def lengthOfLastWord(self, s):""":type s: str:rtype: int"""if s.isspace(): # 判断s是否只由空格字符组成,如s==" "return 0elif s == "": # 判断s是否为空字符串,如s==""return 0else: # 如果s不为空,且不全是由空格组成temp = s.split(" ") # 通过split方法,用一个空格字符将字符串s进行切割,可以得到由单词和空字符串组成的列表,将列表赋给tempnew = [] # 定义一个空列表,作为中间变量for t in temp: # 遍历temp,把非空元素提取到new中,最后把new的最后一项的长度返回即可if t != "":new.append(t)return len(new[-1])

在说方法2之前,说一个错误的方法:使用for循环,正向遍历列表,删除其中的空字符,

如下:

s = ["","","a", "a", "a","","",""]for i in range(0,len(s)):if s[i] == "":del s[i]print(s)

运行上述代码,会报错:

python怎么删除列表中特定元素

原因是当遇到空字符时,把空字符删掉后,列表长度变小了,但是循环遍历时,还是按照最初的长度遍历,导致溢出;

另外这样写还存在一个弊端:可能会漏删某些空字符,原因是当删掉前面的空字符后,后面的元素依次向前移动,导致索引与原先对应的值发生变化,

如下:

b = ["","","a", "a", "a","","",""]for i in range(0,len(b)):if i >= len(b): # 加一个判断,当i大于列表长度时,跳出循环,避免报错breakif b[i] == "":del b[i]print(b)

python怎么删除列表中特定元素

所以我们在解决这个问题前,不能用for循环来正向遍历列表

方法2:使用while循环

因为for循环无法达到目的,所以考虑使用while循环,如下:

class Solution(object):def lengthOfLastWord(self, s):""":type s: str:rtype: int"""if s.isspace(): # 判断s是否只由空格字符组成,如s==" "return 0elif s == "": # 判断s是否为空字符串,如s==""return 0else: # 如果s不为空,且不全是由空格组成temp = s.split(" ") # 通过split方法,用一个空格字符将字符串s进行切割,可以得到由单词和空字符串组成的列表,将列表赋给tempi = 0 # 设置初始指针,定为0while i < len(temp): # 使用while循环,当指针i的值小于列表temp的长度时,则一直循环if temp[i] == "": # 从索引0开始,如果temp[i]为空del temp[i] # 则删除该索引对应的值,也就是删除temp[i]i -=1 # 删除之后,由于列表整体长度变小了1位(也就是后面的元素都往前提了一位),所以索引i需要减1,以便下次遍历时不丢掉挨着的元素i += 1 # 判断完索引i后,给索引自增1,进行下一轮判断return len(temp[-1]) # temp所有元素遍历完成后,就剔除了所有空字符串,取出最后一项的长度返回即可

方法3:for循环倒序删除空字符串

刚才说了使用for循环时,正向遍历会导致溢出或者结果出错,但是从后向前遍历是可以的

class Solution(object):def lengthOfLastWord(self, s):"""倒序循环删除空字符串:type s: str:rtype: int"""if s.isspace(): # 判断s是否只由空格字符组成,如s==" "return 0elif s == "": # 判断s是否为空字符串,如s==""return 0else: # 如果s不为空,且不全是由空格组成temp = s.split(" ") # 通过split方法,用一个空格字符将字符串s进行切割,可以得到由单词和空字符串组成的列表,将列表赋给tempfor i in range(len(temp)-1, -1, -1): # 倒序循环删除空字符串if temp[i] == "":del temp[i]return len(temp[-1])

方法4:拷贝原列表

拷贝原列表,然后遍历拷贝的列表来找出空字符,最后再原列表中删除空字符

'''学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程pdf电子书!'''class Solution(object):def lengthOfLastWord_3(self, s):""":type s: str:rtype: int"""if s.isspace(): # 判断s是否只由空格字符组成,如s==" ",用isspace()函数判断return 0elif s == "": # 判断s是否为空字符串,如s==""return 0else: # 如果s不为空,且不全是由空格组成temp = s.split(" ") # 通过split方法,用一个空格字符将字符串s进行切割,可以得到由单词和空字符串组成的列表,将列表赋给tempfor i in temp[:]: # temp[:]是对原始的temp的一个拷贝,是一个新的list,所以,我们遍历新的list,而删除原始的list中的元素if i == "":temp.remove(i)return len(temp[-1])

这样理解一下:假如有一个列表s = [1,1,2,3,4,4,3,1],现在要把里面的1都删掉

我们先拷贝s,得到一个新列表(注意不能用一个变量直接等于s,如a=s,其实a和s都指向同一个列表,本质还是一个),新列表的元素与原列表完全相同

然后遍历新列表,当遇到某个元素的值为1时,就在原列表中把这个元素删掉(使用列表的remove方法删除),因为remove在删除元素时,只会删掉遇到的第一个目标元素,所以我们继续遍历新列表,如果再遇到1,就继续在原列表中删除,

最终遍历完新列表,也就会在原列表中把所有1都删掉了

上述代码中的temp[:]是拷贝原列表得到新列表的一个方法,也可以通过如下方法复制得到一个新列表

>>> new_temp = temp[:]>>> new_temp = list(temp)>>> new_temp = temp*1>>> import copy>>> new_temp = copy.copy(temp)

关于“python怎么删除列表中特定元素”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: python怎么删除列表中特定元素

本文链接: https://www.lsjlt.com/news/329756.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python怎么删除列表中特定元素
    这篇文章主要介绍“python怎么删除列表中特定元素”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python怎么删除列表中特定元素”文章能帮助大家解决问题。题目如下:给定一个仅包含大小写字母和空格...
    99+
    2023-06-30
  • python怎么删除列表中指定的元素
    你可以使用 remove() 方法来删除列表中的指定元素。例如: # 创建一个列表 mylist = [1, 2, 3, 4, 5]...
    99+
    2023-10-24
    python
  • python怎么删除列表中的指定元素
    有几种方法可以删除列表中的指定元素:1. 使用`remove()`方法:可以通过`remove()`方法删除列表中的指定元素。该方法将从列表中删除第一个匹配的元素。如果列表中不存在指定的元素,则会引发`ValueError`异常。```...
    99+
    2023-08-09
    python
  • python删除列表中特定元素的几种方法
    目录前言思路方法1方法2:使用while循环方法3:for循环倒序删除空字符串方法4:拷贝原列表前言 题目如下: 给定一个仅包含大小写字母和空格 ’ ’ 的字...
    99+
    2024-04-02
  • python怎么删除列表中的元素
    有几种方法可以删除列表中的元素:1. 使用`del`关键字```pythonmy_list = [1, 2, 3, 4, 5]del...
    99+
    2023-09-26
    python
  • Python怎么删除列表中重复元素
    直接遍历列表删除l1 = [1, 1, 2, 2, 3, 3, 3, 3, 6, 6, 5, 5, 2, 2] for el in l1: if l1.count(el) > 1: ...
    99+
    2023-05-14
    Python
  • 使用python怎么删除列表元素
    使用python删除列表元素的方法:1.使用pop()方法删除;2.使用del语句删除;3.使用remove()方法根据值删除;具体方法如下:使用pop()方法删除python中pop()方法是用于移除列表中的一个元素(默认最后一个元素),...
    99+
    2024-04-02
  • python怎么删除列表重复元素
    要删除列表中的重复元素,可以使用set()函数和list()函数的组合来实现。例如,假设有一个列表nums,其中包含了重复的元素:n...
    99+
    2023-10-24
    python
  • 使用python怎么删除列表中的元素
    这篇文章将为大家详细讲解有关使用python怎么删除列表中的元素,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB...
    99+
    2023-06-14
  • python 列表删除多个元素
    文章目录 一. 删除列表多个元素方法1 使用枚举:2. 使用python中List.pop()方法3. 使用python中List.remove()方法4. 注意 二. 使用双指针法删...
    99+
    2023-08-31
    python 开发语言
  • python如何删除列表中的元素
    可以使用 del 关键字或者 remove() 方法来删除列表中的元素。 使用 del 关键字删除指定索引位置的元素: my_lis...
    99+
    2024-03-02
    python
  • python怎么安全地删除列表元素
    这篇“python怎么安全地删除列表元素”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python怎么安全地删除列表元素”文...
    99+
    2023-06-29
  • Golang中怎么从列表中删除元素
    这篇文章主要介绍“Golang中怎么从列表中删除元素”,在日常操作中,相信很多人在Golang中怎么从列表中删除元素问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Golang中怎么从列表中删除元素”的疑惑有所...
    99+
    2023-07-05
  • python中如何对列表删除元素
    这篇文章主要介绍python中如何对列表删除元素,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!删除# remove:通过元素的值删除元素list1.remove('...
    99+
    2024-04-02
  • python循环删除列表中元素怎么实现
    可以使用for循环结合remove()方法来删除列表中的元素。具体实现如下: # 定义列表 lst = [1, 2, 3, 4, 5...
    99+
    2023-10-24
    python
  • python中如何删除列表中的元素
    本文将为大家详细介绍“python中如何删除列表中的元素”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“python中如何删除列表中的元素”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一...
    99+
    2023-06-06
  • python怎么删除列表所有相同元素
    可以使用集合(set)来删除列表中的所有相同元素,然后将结果转换为列表。以下是一个示例代码:```pythonlst = [1, 2...
    99+
    2023-09-06
    python
  • Python如何删除列表中重复元素
    这篇“Python如何删除列表中重复元素”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何删除列表中重复元素”文...
    99+
    2023-07-06
  • python怎么根据索引删除列表元素
    可以使用del语句根据索引删除列表元素。例如,要删除列表中索引为2的元素,可以使用以下代码:```pythonmy_list = [...
    99+
    2023-09-26
    python
  • 使用Python怎么删除列表重复元素
    本篇文章为大家展示了使用Python怎么删除列表重复元素,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.pi...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作