如何在Python中删除列表中满足特定条件的最左/最右元素? [复制]

2024-03-09

我有一个如下所示的列表:

['a', 'b', 'c', '', '', '']

这是解析“脏”csv 文件的结果。我现在想去掉右侧的空列。我不能只使用计数,因为长度是可变的。我也不能只使用简单的过滤,因为还有一些行看起来像这样:

['a1', '', 'c1', '', '']

所以我必须保留空列not在最右边。有一个惯用的方法来做到这一点吗?我希望有一个类似“removeWhile”函数的东西,我可以将其应用于反向列表。

到目前为止我想出的最好的方法如下:

def filterRow(row):
    row.reverse()
    blanks = 0
    for x in row:
        if x == '':
            blanks += 1
        else:
            break
    row.reverse()
    return row[0:-blanks]

def filterRow(row):
    while row[-1] == "":
        row.pop()

如果您出于某种原因不想就地执行此操作,请改为这样做:

def filterRow(row):
    row = list(row)
    while row[-1] == "":
        row.pop()
    return row

弹出列表末尾的速度非常快,尽管may计算最后一个索引并进行切片的速度稍快一些,它也会导致代码更长、更复杂、更难阅读。因此,暂时使用可读版本,只有在确定它是实践中的重大瓶颈时才考虑更改它。

为了让这个函数更直观,为什么不调用它rstrip代替filterRow,因为它几乎做了同样的事情str.rstrip对字符串有什么作用?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中删除列表中满足特定条件的最左/最右元素? [复制] 的相关文章

随机推荐

  • php 会话立即销毁

    当我将会话设置为瞬间时 会话似乎会起作用 然后它们就会被销毁 这是我的 phpinfo 页面 有人能看到问题吗 我无权访问 phpini 文件 您能否检查我的 cookie 设置并告诉我是否可以使用这些设置 http cksgrill ne
  • 在辅助路由中访问子级:Angular

    I have root路由定义为 const routes Routes path component HomeComponent path module1 loadChildren module1 module1 module Modul
  • 如何定义导入变量类型

    I have noImplicitAny set to true对于我的 TypeScript 编译器 当我使用如下所示的导入时 它会抛出错误 因为我没有显式定义类型foo多变的 import as foo from bar 我能够定义一个
  • 证明具有相同中序和先序遍历的二叉树是相同的?

    有谁知道如何prove如果两个二叉树具有相同的中序和先序遍历 那么它们是相同的 也许通过表明不能有两个具有相同中序和先序遍历的不同二叉树 或者 展示一个反驳这一点的案例 或者展示为什么不能这样做 我承认 这纯粹是学术性的 但它不是家庭作业或
  • 残疾人不工作

    Not working disabled true disabled isDisabled ts gt isDisabled true 基本的 html 禁用器也不起作用 html gt disable attr disabled true
  • 任何人都知道用于托管 win32 exes/dll 的免费/便宜的命令行资源编辑器

    我已被推荐 资源调谐器控制台 http www heaventools com command line resource editor htm但这有点超出了我的价格范围 我正在寻找可以从 nant 构建脚本启动的东西 并告诉它用附加属性标
  • 学说查询不同的相关实体

    我可能忽略了一些非常简单的东西 只是一直盯着它看太多 但我无法让这个 DQL 查询工作 我收到一个异常说明 Cannot select entity through identification variables without choo
  • Symfony Doctrine Migrations,如何使用多个实体管理器

    使用 Symfony 2 5 和 Doctrine 2 2 我有几个用于我正在开发的应用程序的数据库 我们将一个称为 主 另一个称为 辅助 当前配置了两个实体管理器 在一次迁移中 我想在 辅助 中创建一个表 但它只想在 主 中创建表 迁移可
  • 将超过 31 天的文件移至另一个驱动器

    Function Move Moves all files older than 31 days old from the Source folder to the Target Get Childitem Path E source Wh
  • 收到ACTION_SHUTDOWN后发送数据

    我知道当设备关闭时应用程序会收到 ACTION SHUTDOWN 广播事件 当应用程序收到关闭消息时 是否仍有机会发送数据包 或者 android 是否会阻止此类尝试 或者平台是否会在发出数据包之前拆除网络堆栈 事实证明 在手机完全死机之前
  • 使用 django-piston 进行基本的 http 身份验证

    我是这方面的新手 我在官方网站上看到了代码片段 粘贴在下面 问题是如何将其部署到服务器 在哪里设置用户名和密码凭据 在 Apache 的 httpd conf 文件中 from django conf urls defaults impor
  • QTextEdit::setTextFormat(Qt::LogText) 不再存在,我还能用什么来记录?

    我的 C 应用程序中需要一个文本记录器 QTextEdit在 Qt 3 3 之前曾经有此功能 但不幸的是它已被删除 我可以使用其他替代方案吗 两种选择 你可以简单地使用QTextEdit setReadOnly true 这 老的Qt Lo
  • 为 Jekyll 服务时参数数量错误(1 对 2)

    全新安装 Jekyll 和 Octopress 启动服务器时 它会产生 Homes MacBook Pro octopress home jekyll serve Configuration file Users home octopres
  • 带有曲面细分着色器的 GL_Triangles

    当我使用曲面细分着色器时 我是否必须从 CPU 程序补丁而不是三角形传递 glDrawArrays GL PATCHES 0 3 Works with Tess Shaders glDrawArrays GL TRIANGLES 0 3 W
  • IOS FacebookShare 返回错误“保留”

    我尝试过搜索但找不到答案 我已经编写了一个应用程序 我正在尝试将内容分享到 Facebook 基本上我想分享一个网址 也许还有一个引言或标题 我不断收到一个名为 保留 的错误 但我不确定它的含义或如何修复它 任何帮助都会很棒 func fb
  • 如何从 android 中的列表视图中获取下一个和上一个列表项

    我有一个列表视图 其中包含一些类似于 Twitter 推文的列表项 当我单击特定列表项时 它会显示该特定列表项的详细信息 在该活动中 包含两个按钮 用于显示 下一个 列表项详细信息和 上一个 列表项详细信息 Problem 如何使用视图翻转
  • Python 数据类:如果 __post_init__ 执行类型转换,则使用什么类型?

    我有一个 Python 类 其中有一个可以传递多种序列类型之一的字段 为了简化 我将坚持使用元组和列表 init 将参数转换为MyList from typing import Union from dataclasses import d
  • iphone <-> 现实世界连接

    有关如何初始化与 iphone 的串行通信的任何指示吗 或者还有其他与外部硬件交互的想法吗 将外部硬件连接到 iPhone 的唯一受支持的方式是通过 iPod 配件协议 通过 30 针连接器 该计划的详细信息位于http developer
  • 我可以制作 pip 可安装包而不在 pypi 中注册包吗?

    我正在尝试按照以下描述使用 python3 制作 pip 可安装包 Url here https marthall github io blog how to package a python app 我使用成功安装了我的包sudo pyt
  • 如何在Python中删除列表中满足特定条件的最左/最右元素? [复制]

    这个问题在这里已经有答案了 我有一个如下所示的列表 a b c 这是解析 脏 csv 文件的结果 我现在想去掉右侧的空列 我不能只使用计数 因为长度是可变的 我也不能只使用简单的过滤 因为还有一些行看起来像这样 a1 c1 所以我必须保留空