在Python中循环分配变量

时间:2013-06-12 11:54:05

标签: python wordnet

我有一个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)+') 

2 个答案:

答案 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))