移除空字符串 | 学习笔记

简介: 快速学习 移除空字符串

开发者学堂课程【Python入门 2020年版移除空字符串】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10303


移除空字符串


内容介绍

一、删除列表中的空字符串

二、课程建议


一、删除列表中的空字符串

1.使用 for....in(存在 bug

即一个列表 words 中有 hellogoodyesok 和一些空字符,现在我们要将其中的空字符串全部取消然后输出。只需要遍历所有元素,为空时删除即可。

(1) 代码

#删除列表里的空字符串

words = [ ‘hello’ , ‘good ’, ‘ ’, 'yes ', 'ok ', ‘ ’]

#words = [ ’hello', 'good ’ , ’yes ’ , ’ok ’]预想输出结果

for word in words ://遍历循环进行比较列表中的元素

if word == “”://如果为空

words.remove(word)

//使用 remove 方法移除当前元素

print(words)

(2) 输出结果

[ ’hello', 'good ’ , ’yes ’ , ’ok ’]

2.存在 bug

如果列表元素中存在两个连在一起的空字符,列表中的空字符就无法被完全删除。原因是因为在使用 for……in 循环时最好不要对元素进行增删操作。

问题在于在 forin 循环中需要连续删除时容易漏掉,下标也易发生变化。

1)代码

words = [ ‘hello’ , ‘good ’, ‘ ’, ‘ ’,'yes ', 'ok ', ‘ ’]

#在使用 for……in 循环时最好不要对元素进行增删操作。

for word in words ://遍历循环进行比较列表中的元素

if word == “”://如果为空

words.remove(word)

//使用 remove 方法移除当前元素

print(words)

2)输出结果

[ ’hello', 'good ’ , ’yes ’ , ’ok ’,‘ ’] //输出结果仍含有空字符

3.  解决方法--使用 while

使用 while 循环,同时注意 if word == “”: 其中的“”不能加空格,否则就不再表示空字符。再添加 i -=1使得光标在每次删除空字符时再返回重新看一眼,避免遗漏。

(1) 代码

words = [ ‘hello’ , ‘good ’, ‘ ’, ‘ ’,'yes ', 'ok ', ‘ ’]

i= 0

while i < len(words):

if words[i]  ==  "":

words.remove(words[i])

i -= 1

i += 1

print(words)

(2) 输出结果

[ ’hello', 'good ’ , ’yes ’ , ’ok ’]

4.改进版-删除空字符

但上述方法仍有些麻烦,同时同学们所提出的 join 方法也行不通。优化的写法即新建一个空列表 words2,遍历判断words 中不为空字符的元素,将其添加至空字符 words2中,再将 words2赋给 word,输出 word

(1) 代码

words2 =[]  //新建列表 words2

for word in words : //依次将 words 里的元素赋给 word

if word != "":        //如果不为空字符

words2.append(word)  //word 添加至 word2

words = words2 //words2赋给 words

print(words) //输出 words

(2) 输出结果

[ ’hello', 'good ’ , ’yes ’ , ’ok ’]


二、课程建议

当听过许多讲解之后,仍然面对题目没有头绪,是十分正常的情况。但是通过不断的了解和锻炼自己的编程思维。

就好比我们学会数学中的加减乘除,但并不一定就会所有的算术题。

而在编程中也有一些套路,比如判断列表中是否存在用 in 运算符结合 if....else,同时各种假设成立法,计数器法等等。当忘记方法的拼写单词也不必着急,跟着老师的讲解,长期积累即可。

同时课程的编程题难度也是稍高,即便做不出业不必有挫败感,把老师所讲授的知识点给摸清即可。

相关文章
|
2月前
|
算法 前端开发
从字符串中移除星号
从字符串中移除星号
32 0
|
2月前
|
算法 前端开发
3039. 进行操作使字符串为空
3039. 进行操作使字符串为空
27 0
|
2月前
|
前端开发 Java
java前端:删除数组中指定元素的方法
java前端:删除数组中指定元素的方法
|
6天前
|
C++ 容器
C++字符串string容器(构造、赋值、拼接、查找、替换、比较、存取、插入、删除、子串)
C++字符串string容器(构造、赋值、拼接、查找、替换、比较、存取、插入、删除、子串)
16 1
更改元素的值
代码示例修改了首个 `&lt;title&gt;` 元素的文本节点值,将它变为 &quot;Easy Cooking&quot;。步骤包括加载 &quot;books.xml&quot; 到 xmlDoc,获取第一个 `&lt;title&gt;` 的子节点,然后设置其nodeValue。
|
2月前
2390.从字符串中移除星号
2390.从字符串中移除星号
16 0
|
2月前
|
算法 Java C++
请实现一个队列,支持以下操作:添加元素、删除第一个元素、获取第一个元素。
请实现一个队列,支持以下操作:添加元素、删除第一个元素、获取第一个元素。
26 0
|
2月前
|
JavaScript 前端开发
JavaScript快速删除对象数组中某一个指定元素。注意:是对象数组,如果是数值数组,请慎用!会伤及无辜0、false、英文空格、undefined、null。
JavaScript快速删除对象数组中某一个指定元素。注意:是对象数组,如果是数值数组,请慎用!会伤及无辜0、false、英文空格、undefined、null。
利用ES6中的模板字符串轻松实现多行和字符串值的插入
利用ES6中的模板字符串轻松实现多行和字符串值的插入
92 0
|
开发者 Python
字符串查找判断和替换相关的方法|学习笔记
快速学习字符串查找判断和替换相关的方法
78 0