【问题标题】:Remove all caracters before a word in a Python list删除 Python 列表中某个单词之前的所有字符
【发布时间】:2021-12-04 12:10:48
【问题描述】:

我有一个本地化列表,但其中一些无法通过 API 获取 gps 坐标,而且我发现它只是其中带有“/”的那些。我在尝试单行之后发现我需要删除“/”和之前的所有字符才能使其工作,但我似乎无法弄清楚如何。这是我尝试过的:

zones = [z.split(" /") for z in zones]

但它只将所有行返回为“/”。我不能使用 lambda 函数,因为“zones”是一个列表。

【问题讨论】:

  • 添加示例输入和所需输出

标签: python list split


【解决方案1】:

不完全确定你在追求什么,但你可以使用 re.sub 对列表中的每个字符串进行操作。这将删除第一个斜杠前面的所有字符,包括斜杠。

import re

zones = ['aa  /jnjn', 'aaa/uhuhuhuhu', 'aaaaa  /plplplplpl']

zones = [re.sub(r'^.*?\/', '', z) for z in zones]
print(zones)

输出:

['jnjn', 'uhuhuhuhu', 'plplplplpl']

【讨论】:

  • 你测试了吗?我没有得到你提到的输出
  • 我修复了它以删除直到并包括第一个斜杠的字符
【解决方案2】:

你只需要在/上拆分;结果是一个 list 字符串,您需要其中的 last 元素。 (如果字符串中没有/,您将得到一个由原始字符串组成的单例元素,不执行拆分。)

zones = [z.split("/", 1)[-1] for z in zones]

如果字符串中最多只有一个/,则可以省略split 的第二个参数。使用第二个参数,它可以处理更一般的情况,即删除直到并包括第一个 / 的所有内容。

【讨论】:

    猜你喜欢
    • 2022-01-26
    • 2018-08-29
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多