当前位置: 首页 > 知识库问答 >
问题:

有没有办法在列表对象上使用strip()python

呼延宪
2023-03-14

现在我有一个这样的列表对象:

lst = [None, None, 'one', None, 'two', None]

我试图在它上执行条(),并得到这样的结果:

strip(lst)

>> ['one', None, 'two']

left_strip(lst)

>> ['one', None, 'two', None]

有没有一种优雅的方式?

ps:谢谢4@oockashek的建议,我已经把lst
[无,无,'一','二',无]改为[无,无,'一',无,'二',无]

共有3个答案

向安福
2023-03-14

有一种过滤方法:

lst = filter(None, lst)

但它也将删除0值如果你有他们在您的列表

要修复此行为,必须编写自己的筛选方法

def FilterNone(arg):
    return arg is not None

filtered_list = filter(FilterNone, lst)
漆雕彬彬
2023-03-14

你可以用itertools。dropwhile要模拟lstrip,请执行以下操作:

def lstrip(list):
    return list(itertools.dropwhile(lambda x : x is None, list))

lst = [None, None, 'one', 'two', None]
lstrip(lst)
>> ['one', 'two', None]

rstrip可以以相同的方式实现,但是在使用dropwhile之前和之后颠倒列表

def rstrip(list):
    return list(reversed(lstrip(reversed(list))))
翟志新
2023-03-14

要获得类似于left_strip这样的行为,您需要从iterols导入drop而

>>> lst=[None, None, 'one', None, 'two', None, None]
>>> from itertools import dropwhile
>>> def left_strip(lst):
        return list(dropwhile(lambda x : x is None, lst))
>>> left_strip(lst)
['one',None, 'two', None, None]

要获得类似于右侧\u strip的行为:

>>> from itertools import dropwhile
>>> def right_strip(lst):
        return list(reversed(left_strip(reversed(lst))))
>>> right_strip(lst)
[None, None, 'one', None, 'two']

要获取条带请按顺序运行这两个命令:

>>> left_strip(right_strip(lst))
['one', None, 'two']
 类似资料:
  • 问题内容: 我想从数据库中的表中获取列名列表。使用编译指示,我会得到一个元组列表,其中包含很多不需要的信息。有没有办法只获取列名?所以我最终可能会遇到这样的事情: [Column1,Column2,Column3,Column4] 之所以绝对需要此列表,是因为我想在列表中搜索列名并获取索引,因为很多代码中都使用了索引。 有没有办法得到这样的清单? 谢谢 问题答案: 您可以使用sqlite3和pep

  • 问题内容: 我想在Python中使用PhantomJS。我用谷歌搜索了这个问题,但是找不到合适的解决方案。 我发现 可能是一个不错的选择。但是我无法通过一些争论。 使用可能是目前合适的解决方案。我想知道是否有更好的解决方案。 有没有办法在Python中使用PhantomJS? 问题答案: 在python中使用PhantomJS的最简单方法是通过Selenium。最简单的安装方法是 安装NodeJS

  • 我想在Python中使用PhantomJS。我谷歌了这个问题,但找不到合适的解决方案。 我发现可能是一个不错的选择。但我无法向它传递一些论据。 使用目前可能是一个合适的解决方案。我想知道是否有更好的解决办法。 有没有办法在Python中使用PhantomJS?

  • 问题内容: 来自目标C的您可以在2个对象之间调用函数以使它们维护一个引用,如果在运行时您不希望在删除该对象的引用之前也不要破坏该对象的话,这会很方便。迅捷有与此类似的东西吗? 问题答案: 这是一个从jckarter的答案衍生而来的简单但完整的示例。 它显示了如何向现有类添加新属性。它通过在扩展块中定义计算属性来实现。计算的属性存储为关联的对象: 编辑: 如果需要支持获取未初始化属性的值并避免发生错

  • 我试图在java中使用Hibernate和TypedQuery。 我试图调用的方法有一个签名 我想像bellow一样调用它,但是用一个真实的实例替换null。 上面的代码经过编译,但显然带有空指针异常。 如果我对擦除的理解是正确的,那么只要我得到类对象的一个实例,这就行了,因为所有泛型类型信息在运行时都会丢失。 是否有任何方法,我可以得到一个类的实例,我可以分配给变量cls,使这个代码将工作?

  • 问题内容: 我们正在开发S60版本,该平台具有不错的Python API。 但是,关于Android上的Python尚无任何官方资料,但是由于Jython存在,有没有办法让蛇和机器人一起工作? 问题答案: 一种方法是使用: 开源Python库,用于快速开发利用创新用户界面的应用程序,例如多点触控应用程序。 可在和上运行。你可以在所有受支持的平台上运行相同的代码。