python - 加入由分隔符分隔的python列表中的项目

标签 python list delimiter

<分区>

我有如下列表

list_1 = ['>name', 'aaa', 'bbb', '>name_1', 'ccc', '>name_2', 'ddd', 'eee', 'fff']

我试图在带有“>”符号的项目之间加入项目。所以我想要的是:

list_1 = ['>name', 'aaabbb', '>name_1', 'ccc', '>name_2', 'dddeeefff']

我怎样才能在 python 中做到这一点?

最佳答案

使用生成器函数;这让您可以控制项目何时“完成”以产生:

def join_unescaped(it):
    tojoin = []
    for element in it:
        if element.startswith('>'):
            if tojoin:
                yield ''.join(tojoin)
                tojoin = []
            yield element
        else:
            tojoin.append(element)
    if tojoin:
        yield ''.join(tojoin)

要根据您的输入生成一个新列表,将生成的生成器对象传递给 list() 函数:

result = list(join_unescaped(list_1))

演示:

>>> list_1 = ['>name', 'aaa', 'bbb', '>name_1', 'ccc', '>name_2', 'ddd', 'eee', 'fff']
>>> def join_unescaped(it):
...     tojoin = []
...     for element in it:
...         if element.startswith('>'):
...             if tojoin:
...                 yield ''.join(tojoin)
...                 tojoin = []
...             yield element
...         else:
...             tojoin.append(element)
...     if tojoin:
...         yield ''.join(tojoin)
... 
>>> list(join_unescaped(list_1))
['>name', 'aaabbb', '>name_1', 'ccc', '>name_2', 'dddeeefff']

关于python - 加入由分隔符分隔的python列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27457107/

相关文章:

python - 空元组作为 sum() 的第二个参数

python - 在 SQLAlchemy 中以 dict 形式检索查询结果

php - 如何使用 PDO 在 PHP 中创建包含分隔符的存储过程?

python - Sympy Subs 在更换电源时不更换符号

python - 将 2 个给定日期之间的天数拆分为特定的批量大小,并相应地获取开始日期和结束日期

list - 根据URL参数对列表进行排序(或对查询中的嵌套域模型进行排序)

list - 无法理解 Haskell 树

java - 如何使用 Java 8 Lambdas 将对象列表转换为 Map<Object, Object>

使用多个定界符拆分的 Java 字符串

java - 为什么这个分隔符没有发挥应有的作用?