【问题标题】:Remove underscore from a list: Python从列表中删除下划线:Python
【发布时间】:2022-08-12 18:41:38
【问题描述】:

假设我有以下列表:

my_list = [\'aaa\', \'bb_bb\', \'cc\', 2]

我想从列表元素中删除下划线 _ 并希望得到

my_list = [\'aaa\', \'bbbb\', \'cc\', 2]

我试过这个

my_list= [re.sub(\'_\', \'\', _) for _ in my_list ]

出于某种原因,我收到错误TypeError: expected string or bytes-like object

有人能帮忙吗?

  • 您在列表中有一个整数。
  • 列表的最后一个元素是intre.sub() 对此一无所知。

标签: python list


【解决方案1】:

这是因为其中一个元素既不是字符串也不是字节。

此外,您不需要re.sub 来替换_ 的所有实例,而且使用_ 作为变量通常意味着它被忽略。

试试这个:

[v.replace('_', '') if isinstance(v, str) else v for v in my_list]

【讨论】:

    【解决方案2】:

    您的列表包含混合类型,因此您需要确保仅转换您可以转换的项目:

    my_list= [(re.sub('_', '', item) if isinstance(item, str) else item) for item in my_list]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-17
      • 2019-11-25
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      相关资源
      最近更新 更多