python - 删除以特定字符开头的 token

标签 python string tokenize

您好,我正在尝试删除所有包含在我的预定义列表(前缀)中的标记。下面是我的代码,并没有删除 token 。

prefixes = ('#', '@')
tokens = [u'order', u'online', u'today', u'ebay', u'store', u'#hamandcheesecroissant', u'#whoopwhoop', u'\u2026']

for token in tokens:
    if token.startswith(prefixes):
       tokens.remove(token)

最佳答案

在遍历列表的同时从列表中删除项目并没有真正起作用。

你可以使用列表理解

tokens = [token for token in tokens if not token.startswith(prefixes)]

或者创建另一个列表,然后将要保留的项目附加到该列表:

new_tokens = []

for token in tokens:
    if not token.startswith(prefixes):
       new_tokens.append(token)

关于python - 删除以特定字符开头的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41917825/

相关文章:

java - OpenNLP Tokenizer 中的圆括号

python - 从 Python 列表生成树

python - tensorflow 中的优化器如何访问在单独函数中创建的变量

java - 使用单词拆分字符串但将单词保留在每个数组索引中

c++ - 根据用户输入创建一个字符数组

xslt - 为孙子中的每个标记复制 node() 并用 XSLT 1.0 中的标记替换孙子的元素文本?

c - 二叉树的标记化问题

php - 如何为网站编写高效的点击计数器

python - 如何将一系列对象转换为单个 DataFrame?

c# - 从 char[] 转换后从字符串中修剪/空值(在 C# 中)