首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中从数组中删除空元素

问在Python中从数组中删除空元素
EN

Stack Overflow用户
提问于 2013-11-09 11:52:29
回答 1查看 26.9K关注 0票数 8
代码语言:javascript
复制
with open("text.txt", 'r') as file:
    for line in file:
        line = line.rstrip('\n' + '').split(':')
        print(line)

我在试图删除正在生成的数组系列中的空列表时遇到了困难。我希望在text.txt中使每一行都成为一个数组,这样我就能够准确地访问每一行的每个元素。

空列表显示为[''] --正如您从第四行可以看到的那样,我试图显式地删除它们。空元素一旦填充了新的行字符,就可以使用.rstrip('\n')成功地删除这些字符。

编辑:

我误解了一些术语,现在更新了上面的内容。本质上,我想去掉空的列表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-09 11:55:12

由于我看不到您的确切行,所以很难为您提供一个与您的需求完全匹配的解决方案,但是如果您想要在一个列表中获取不是空字符串的所有元素,那么您可以这样做:

代码语言:javascript
复制
>>> l = ["ch", '', '', 'e', '', 'e', 'se']
>>> [var for var in l if var]
Out[4]: ['ch', 'e', 'e', 'se']

您还可以将filter与None或bool结合使用。

代码语言:javascript
复制
>>> filter(None, l)
Out[5]: ['ch', 'e', 'e', 'se']
>>> filter(bool, l)
Out[6]: ['ch', 'e', 'e', 'se']

如果您希望去掉包含空字符串的列表,那么对于您的特定示例,您可以这样做:

代码语言:javascript
复制
with open("text.txt", 'r') as file:
    for line in file:
        line = line.rstrip('\n' + '').split(':')
        # If line is just empty
        if line != ['']:
            print line
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19875595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档