首页 > 解决方案 > Python 将字符串列表的各个部分连接在一起

问题描述

我在 python 中有一个字符列表,我想在保持列表的同时连接其中的一些。

我设法检测到哪些是字母 AZ\az,我只想将字母连接成整个单词。

例子:

# List: ['H', 'E', 'L', 'L', 'O', ' ', '=', ' ', 'H', 'E', 'Y']
# Wanted Result: ['HELLO', ' ', '=', ' ', 'HEY']

我希望能够连接列表中的字母而不是其他符号,同时仍然保持我在示例中显示的列表。

感谢所有帮助:)

编辑

我失败的尝试:(请注意,当我在这里复制它时,它有点搞乱了标签顺序,但总的来说这是我尝试过的代码)

streak = False
marks = []
for i in range(len(lexes) - 1):
    if lexes[i] == "LETTER" and lexes[i + 1] == "LETTER" and not streak:
        marks.append(i)
        streak = True
    elif lexes[i] == "LETTER" and lexes[i + 1] != "LETTER" and streak:
        marks.append(i)
        streak = False
if len(marks) % 2 == 1:
    marks.append(len(lexes) - 1)
for i in range(len(marks)):
    newString = ""
    if i % 2 == 0:
        newString = "".join(words[marks[i]: marks[i + 1] + 1])
    for j in range(len(newString)):
        print(marks[i], ">>>", lexes[i])
        lexes.pop(marks[i])
        words.pop(marks[i])
    words.insert(marks[i], newString)
    lexes.insert(marks[i], "STRING")
    marks = np.subtract(marks, marks[i])
        # words.insert(marks[i], newString)

结果:从['p', 'r', 'i', 'n', 't', '(', "'", 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', "'", ')']

到:["print('Heel", 'l', '', 'd', "'", ')']

标签: python

解决方案


可以尝试的东西:

def join_letters(seq):
    '''
    >>> join_letters(['H', 'E', 'L', 'L', 'O', ' ', '=', ' ', 'H', 'E', 'Y'])
    ['HELLO', ' ', '=', ' ', 'HEY']
    '''
    ret = []
    for c in seq:
        if ret and ret[-1].isalpha() and c.isalpha():
            ret[-1] = ret[-1] + c

        else:
            ret.append(c)

    return ret


if __name__ == "__main__":
    import doctest
    doctest.testmod(verbose=True)

    print(
        join_letters([
            'p', 'r', 'i', 'n', 't', '(', "'", 'H', 'e', 'l', 'l', 'o', ' ',
            'W', 'o', 'r', 'l', 'd', "'", ')'
        ]))

推荐阅读