如何用标点符号重构一个列表?在python 3.5中

时间:2016-09-26 13:58:36

标签: python python-3.x

我有一个列表,例如['hello',', ','how','are','you','?']我希望它成为"hello, how are you?" 无论如何这样做?

我还应该注意,我正在使用代码

从文本文档中打开它
    with gzip.open('task3.txt.gz', 'r+') as f:
    reconstruct = f.readline()
    reconstruct2 = f.readline()
    reconstruct3 = f.readline()
    reconstruct4 = f.readline()
    f.close()

所以我的列表以b'["hello", ",", "how", "are", "you", "?"]\n'出现,这与我用新行保存它们的事实有关吗?

2 个答案:

答案 0 :(得分:1)

您实际上可以正确将令牌列表重新标记,然后将nltk's moses detokenizer(目前在nltk主干中可用 - 尚未发布)放入句子中:

In [1]: from nltk.tokenize.moses import MosesDetokenizer

In [2]: l = ['hello', ', ', 'how', 'are', 'you', '?']

In [3]: detokenizer = MosesDetokenizer()

In [4]: detokenizer.detokenize(l, return_str=True)
Out[4]: u'hello, how are you?'

答案 1 :(得分:0)

我相信,您正在寻找加入()

>>> a = ['hello',', ','how','are','you','?']
>>> " ".join(a)
'hello ,  how are you ?'

请注意,引号的内容将插入到您的单词之间。所以你需要决定,如果你想使用" " (这将在"你"和"?",例如)或""之间插入空格。 - 但是在每个单词的末尾插入空格(你的数组看起来应该是这样的:['你好',',','怎么',&# 39;是','你','?'])