我有一个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)+')
答案 0 :(得分:2)
我并不完全明白你要做的是什么,但你上面的表达式会将单词存储在列表中,而不是字典。 你实际上可以:
print('the words in this synset are ' + word[0] + ',' + word[1])
请注意,在上面编写时需要使用[]而不是()。 更优雅的是以下内容:
print ("the words in this synset are {0}".format(", ".join(word)))
因为它适用于未知数量的单词。
答案 1 :(得分:1)
我无法想象为什么你认为你想为他们分配个人名字。如果你有一个可变数量的元素,请将它们保存在一个列表中:这正是列表的用途。然后,您可以加入元素并立即打印它们:
print('the words in this synset are: ' + ','.join(words))