gpt4 book ai didi

python - 从单词列表中去除标点符号

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:20 30 4
gpt4 key购买 nike

我希望从这样的单词列表中删除所有标点符号,同时保持格式相同:句子是:我要回家了。我会看看,如果我能做到的话!我会看到吗?

这就是我的数据集的样子:

[[u'i', u'am', u'going', u'home.', u'i', u'will', u'see,', u'if', u'i', u'can', u'do', u'that!', u'i', u'will', u'see?']]

我怎样才能去掉标点符号?字符串方法不起作用,因为数据是列表格式的列表。

这是我试过的:

punc=res
punc=[''.join(c for c in s if c not in string.punctuation) for s in punc]
print(punc)

其中 res 是上述格式的我的数据集。这行不通。

最佳答案

您的代码段不起作用的原因是您在列表中有一个列表。您的代码只处理一个平面列表。见下文:

[[u'i', u'am', u'going', u'home.', u'i', u'will', u'see,', u'if', u'i', u'can', u'do', u'that!', u'i', u'will', u'see?']]

如果您删除多余的括号,您的代码将有效:

>>> punc = [u'i', u'am', u'going', u'home.', u'i', u'will', u'see,', u'if', u'i', u'can', u'do', u'that!', u'i', u'will', u'see?']
>>> print [''.join(c for c in s if c not in string.punctuation) for s in punc]
[u'i', u'am', u'going', u'home', u'i', u'will', u'see', u'if', u'i', u'can', u'do', u'that', u'i', u'will', u'see']

您可以通过调用 str.strip() 稍微简化该代码

>>> [x.strip(string.punctuation) for x in punc]
[u'i',
u'am',
u'going',
u'home',
u'i',
u'will',
u'see',
u'if',
u'i',
u'can',
u'do',
u'that',
u'i',
u'will',
u'see']

如果您需要处理列表中的列表(如您的示例),只需添加另一个循环即可。这也适用于您的原始代码段。

>>> [[x.strip(string.punctuation) for x in y] for y in punc]
[[u'i',
u'am',
u'going',
u'home',
u'i',
u'will',
u'see',
u'if',
u'i',
u'can',
u'do',
u'that',
u'i',
u'will',
u'see']]

关于python - 从单词列表中去除标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35740328/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com