Python 包含多个列表的对象

Python 包含多个列表的对象,python,list,token,nltk,tokenize,Python,List,Token,Nltk,Tokenize,我在Python中偶然发现了一个非常奇怪的变量。我正在对多个unicode字符串执行标记化操作,如下所示: with open ("verbatims.txt","r") as verbatims : for line in verbatims: line = line.decode("utf8") tokens = nltk.tokenize.word_tokenize(line) &当我打印(代币) 我有一个奇怪的输出。似乎tokens是一个包含多个

我在Python中偶然发现了一个非常奇怪的变量。我正在对多个unicode字符串执行标记化操作,如下所示:

with open ("verbatims.txt","r") as verbatims :
    for line in verbatims:
        line = line.decode("utf8")
        tokens = nltk.tokenize.word_tokenize(line)
&当我打印(代币)

我有一个奇怪的输出。似乎
tokens
是一个包含多个列表的对象。这里只是一个示例,但我有多个句子列表。此外,我不能像在普通列表中那样调用
令牌。我得打印一张

在同一个对象中包含多个列表的问题在于,当我使用简单的
for…in
循环解析对象时,解析器将不工作,只返回对象的最后一个列表

因此,我的问题是:

  • 这些对象是如何命名的
  • 如何解析此对象

谢谢

尝试使用“utf-8”或“latin1”编码

with open ("verbatims.txt","r") as verbatims :
    for line in verbatims:
        line = line.decode("utf8")
        tokens = nltk.tokenize.word_tokenize(line)
        tokens = [x.encode('latin1') for x in tokens] # add this or try with the another
但是,如果您的令牌为[]、[]],则应在x中执行其他循环,例如(多个列表):


我怀疑您正在for循环内部而不是外部调用
print(tokens)
。嵌套列表将其内容包装在附加的方括号中,但这里的情况并非如此。此外,只有最后一个列表被迭代,这一事实强烈表明您只有一个列表作为返回变量。每次迭代,
tokens
都会被覆盖,所以很明显,
print(tokens)
会显示不同的内容。你确定这是一次调用print(tokens)的输出,而不仅仅是多次调用print(tokens)?哦,是的。我的打印在循环中。但是它仍然无法解决问题,即我只在
标记中获得
unicode str.
中的最后一个。我确信这是我的循环的问题,但我无法修复它:/谢谢你的回答!但是Akshat Mahajan是对的:我在循环中调用print()。这就是为什么我在我的列表中有这些多个列表interpreter@NahidO啊??您可以在转换Unicode后调用print,发布您的txt以获得帮助
with open ("verbatims.txt","r") as verbatims :
    for line in verbatims:
        line = line.decode("utf8")
        tokens = nltk.tokenize.word_tokenize(line)
        tokens = [x.encode('latin1') for x in tokens] # add this or try with the another
with open ("verbatims.txt","r") as verbatims :
    for line in verbatims:
        line = line.decode("utf8")
        tokens = nltk.tokenize.word_tokenize(line)
        tokens = [a.encode('latin1') for a in x for x in tokens]