0

我有一个我正在尝试为其分配变量的 Wordnet 文本条目。我已经分配了任何只出现一次但在某些文本行中可能有多个单词的变量。这导致了一个问题,因为我不知道如何分配它们,以便文本中的单词数等于分配给 word1、word2 等的变量数。

这是我正在阅读的行的示例

09824747 18 n 02 弓箭手 0 弓箭手 0 003 @ 09640897 n 0000 ~ 10290474 n 0000 ~i 10718145 n 0000 | 擅长使用弓箭的人

在这种情况下,我想调用 word1=archer 和 word2 = bowman。

我可以用这个

f = open("wordnetSample.txt", "r")
for line in f:
L = line.split()
word = [L[4:4 + 2 * int(L[3]):2]]

但它只会将单词放在一个列表中,而不是为它们分配我可以进一步使用的变量名。

我还想知道如何将它们插入到我以后的代码中,这可能看起来像这样:

print('the words in this synset are '+word(i)+','+word(i+1)+','+word(i+n)+') 
4

2 回答 2

2

我不完全理解您要做什么,但是您上面的表达式会将单词存储在列表中,它不是字典。你实际上可以:

print('the words in this synset are ' + word[0] + ',' + word[1])

请注意,如上所述,您需要使用 [] 而不是 ()。更优雅的是以下内容:

print ("the words in this synset are {0}".format(", ".join(word)))

因为这适用于未知数量的单词。

于 2013-06-12T12:01:52.140 回答
1

我无法想象为什么你认为你想给他们分配单独的名字。如果您有可变数量的元素,请将它们保存在一个列表中:这正是列表的用途。然后,您可以加入元素并立即打印它们:

print('the words in this synset are: ' + ','.join(words))
于 2013-06-12T12:02:36.007 回答