Python正确连接标点符号

Python正确连接标点符号,python,list,Python,List,我有一个分为单词和标点符号的列表: 列表2=['”、'Stop'、'right'、'there'、'said'、'George'、' 我想让列表加入,以便: “停在那儿,”乔治说 但是,有没有一种有效的方法将第一个语音符号连接到下一个元素,将其他标点符号(在此列表中)连接到上一个元素 我还必须提到,列表可以是任何单词和标点符号,因此也可以是: ['Dilly'Dally','('it's','a','hard','life','!',')] 或者别的什么 为确认该清单将是: “磨磨蹭蹭(这是一种

我有一个分为单词和标点符号的列表:

列表2=['”、'Stop'、'right'、'there'、'said'、'George'、'

我想让列表加入,以便:

“停在那儿,”乔治说

但是,有没有一种有效的方法将第一个语音符号连接到下一个元素,将其他标点符号(在此列表中)连接到上一个元素

我还必须提到,列表可以是任何单词和标点符号,因此也可以是:

['Dilly'Dally','('it's','a','hard','life','!',')]

或者别的什么

为确认该清单将是:

“磨磨蹭蹭(这是一种艰苦的生活!)”


只有一个内置的字符串联接

In [144]: ' '.join(list2)
Out[144]: '" Stop right there " said George .'
In [145]: ''.join(list2)
Out[145]: '"Stoprightthere"saidGeorge.'
这是不对的,但这是唯一可以被称为“高效”的东西

我可以想象使用
regex
表达式删除
Out[144]
中不需要的空格。或者,扫描
list2
,并将标点与相邻字符串组合:

In [146]: list3 = ['"Stop', 'right', 'there"', 'said', 'George.']
In [147]: ' '.join(list3)
Out[147]: '"Stop right there" said George.'
可能有一些附加包处理这种文本格式。但对于基本Python,带有标点符号的字符串与其他字符串没有什么不同

评论。使用Pieter函数:

In [150]: ' '.join(join_punctuation(list2))
Out[150]: '" Stop right there " said George.'
将其更正为包含报价:

In [152]: ' '.join(join_punctuation(list2))
Out[152]: '" Stop right there" said George.'
不是两个引号都对。它将标点符号与前面的字符串连接起来<代码>()也会有同样的问题。在任何情况下,这都是您需要的处理方式



很容易将
归类为应该连接到右侧的标点符号,
归类为应该连接到左侧的标点符号。但是区分
的左连接和右连接可能需要看得更广一些。句子中的第一个
应该是右连接,下一个是左连接,依此类推。我怀疑即使这样也不会很可靠。

所以说得清楚一点,您正在寻找一种有效的方法来在单词之间留空格,而不是在标点符号之间?如果是这样的话,也许你应该把这个明确的问题放在你问题的标题和/或主体中,否则,你所说的“正确”是什么意思,这是任何人的猜测。它比这更复杂。程序如何判断一个特定的标点符号是否应该连接到左边、右边或两者?这个问题已经在这里解决了:所以这与我们能做的是相反的。glibdud是对的,我想不出一个合适的标题来给出我的问题。很抱歉给您带来不便,谢谢!不是我想要的完整答案,但仍然非常有用:)