将分割词和标点符号连接到正确的位置

2024-04-11

所以我尝试使用join()将字符串拆分为单词和标点符号后,但它在单词和标点符号之间使用空格连接字符串。

b = ['Hello', ',', 'who', 'are', 'you', '?']
c = " ".join(b)

但这会返回:
c = 'Hello , who are you ?'

而且我要:
c = 'Hello, who are you?'


您可以先加入标点符号:

def join_punctuation(seq, characters='.,;?!'):
    characters = set(characters)
    seq = iter(seq)
    current = next(seq)

    for nxt in seq:
        if nxt in characters:
            current += nxt
        else:
            yield current
            current = nxt

    yield current

c = ' '.join(join_punctuation(b))

The join_punctuation生成器生成已加入任何以下标点符号的字符串:

>>> b = ['Hello', ',', 'who', 'are', 'you', '?']
>>> list(join_punctuation(b))
['Hello,', 'who', 'are', 'you?']
>>> ' '.join(join_punctuation(b))
'Hello, who are you?'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将分割词和标点符号连接到正确的位置 的相关文章

随机推荐