2013-06-12 2 views
0

У меня есть текстовая запись Wordnet, которую я пытаюсь назначить переменным. Я назначил любую переменную, которая встречается только один раз, но в некоторых текстовых строках может быть несколько слов. это приводит к проблеме, как я не знаю, как назначить их так, чтобы количество слов в тексте, равно числу переменных, присвоенных word1, word2 и т.д.Назначение переменных в цикле в Python

здесь является образцом линии Читаю

09824747 18 n 02 archer 0 bowman 0 003 @ 09640897 n 0000 ~ 10290474 n 0000 ~ i 10718145 n 0000 | человек, который является экспертом в использовании лука и стрелы

В этом случае я хотел бы назвать word1 = Арчер и word2 = лучник.

я могу использовать этот

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

Я не совсем понимаю, что вы пытаетесь сделать, но выражение, которое вы указали выше, сохранит слова в списке, это не словарь. Вы могли бы на самом деле:

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

Обратите внимание, что вам нужно использовать [], а не(), как вы пишете выше. Более элегантный будет следующее:

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

, потому что работает с неизвестным количеством слов.

+0

спасибо, я отредактировал мой вопрос, вы ответили именно на то, что я хотел! – Johnnerz

1

Я не могу представить, почему вы думаете, что хотите назначить им индивидуальные имена. Если у вас есть переменное количество элементов, сохраните их в списке: это именно то, для чего нужны списки. Затем вы можете присоединиться к элементам и распечатать их сразу:

Смежные вопросы