当前位置: 首页 > 面试题库 >

根据定界符分割列表

寇照
2023-03-14
问题内容

我有一个包含各种字符串值的列表。我想一看就拆分列表WORD。结果将是一个列表列表(这将是原始列表的子列表),其中仅包含WORDI的一个实例,我可以使用循环执行此操作,但是有没有
更Python的 方法可以实现此目的?

例子= ['A', 'WORD', 'B' , 'C' , 'WORD' , 'D']

结果= [['A'], ['WORD','B','C'],['WORD','D']]

这是我尝试过的方法,但实际上并没有达到我想要的效果,因为它将放入WORD应包含的其他列表中:

def split_excel_cells(delimiter, cell_data):

    result = []

    temp = []

    for cell in cell_data:
        if cell == delimiter:
            temp.append(cell)
            result.append(temp)
            temp = []
        else:
            temp.append(cell)

    return result

问题答案:

我会使用发电机:

def group(seq, sep):
    g = []
    for el in seq:
        if el == sep:
            yield g
            g = []
        g.append(el)
    yield g

ex = ['A', 'WORD', 'B' , 'C' , 'WORD' , 'D']
result = list(group(ex, 'WORD'))
print(result)

此打印

[['A'], ['WORD', 'B', 'C'], ['WORD', 'D']]

该代码接受任何可迭代的代码,并生成一个可迭代的代码(如果您不需要, 可以 将其平化为列表)。



 类似资料:
  • 问题内容: 我有以下格式的字符串: 我试图用来拆分字符串,并在新行上打印每个子字符串。这是我在做什么: 打印: 如何在每个定界符上拆分它? 问题答案: 要使用GNU sed用分隔符分割字符串,请说: 例如,使用用作分隔符进行分割: 或使用非GNU sed: 在这种特殊情况下,您错过了替换后的。因此,仅执行一次。看到: 代表小叶,表示必须在全局范围内(即任何情况下)进行替换。请注意,默认值为1,如果

  • 问题内容: 如何用定界符分割字符串,但是如果转义了,则不能分割?例如,我有一个字符串: 定界符为,转义定界符为。此外,我想忽略转义的反斜杠,因此中的仍然是分隔符。 因此,使用上面的字符串,结果应该是: 问题答案: 使用黑魔法: 匹配一个反斜杠,后跟一个字符,将其跳过并匹配您的定界符。

  • 问题内容: 说我有以下字符串: 我想将其拆分为句子,以便获得以下列表: 如您所见,我想在所有出现的字符串上拆分字符串,而不是在或的任何出现上进行拆分。在这种情况下,Python将无法正常工作,因为它将字符串的每个字符都视为一个单独的定界符,而不是将整个字符串视为一个多字符定界符。有解决此问题的简单方法吗? 问题答案: 为我工作

  • 问题内容: 我有一张地图,如下所示: 如您所见,将有一个名为split的最终常量,其值为40 我必须实现逻辑,例如,如果映射的值达到40,那么从计算开始的映射的第一个键以及恰好达到40的键也将被选择为min和max,如上所述。 。 除此之外,如果总和超过40,则需要格外小心。如果是,我们必须忽略它,并且在最小值和最大值相等的情况下,将先前的值本身作为最小值和最大值。 请建议我如何使用Java和。乡

  • 问题内容: 我知道您可以使用分割字符串。但是我不知道如何用两个定界符分割字符串。 例: 我需要这样的东西: 它的正则表达式是什么? 问题答案: 用这个 :

  • 问题内容: 我想用定界符空格分割字符串。但它应该智能地处理带引号的字符串。例如,像这样的字符串 它应该返回三个字符串John Smith,Ted和Barry。 问题答案: 弄乱它之后,您可以使用Regex来实现。在以下位置运行“全部匹配”的等效项: 一个Java示例: 输出: 上面使用示例的正则表达式分解可以在这里查看: http://regex101.com/r/wM6yT9 综上所述,正则表达