Python正确连接标点符号
我有一个分为单词和标点符号的列表: 列表2=['”、'Stop'、'right'、'there'、'said'、'George'、' 我想让列表加入,以便: “停在那儿,”乔治说 但是,有没有一种有效的方法将第一个语音符号连接到下一个元素,将其他标点符号(在此列表中)连接到上一个元素 我还必须提到,列表可以是任何单词和标点符号,因此也可以是: ['Dilly'Dally','('it's','a','hard','life','!',')] 或者别的什么 为确认该清单将是: “磨磨蹭蹭(这是一种艰苦的生活!)”Python正确连接标点符号,python,list,Python,List,我有一个分为单词和标点符号的列表: 列表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是对的,我想不出一个合适的标题来给出我的问题。很抱歉给您带来不便,谢谢!不是我想要的完整答案,但仍然非常有用:)