2012-06-21 2 views
-2

파이썬 세트에 vars를 삽입하는 데 문제가 있습니다. 누구든지 내가 뭘 찾았는지 : s.insert (len (s), x)? 내가 삽입 또는 싶어 할 때파이썬에서 세트에 변수를 삽입하십시오.

내 문제는 세트 또는 목록에 추가 x입니다.

왜 내가 할 수 없습니까? 그리고이 문제를 해결하는 방법?

내 코드 : s가리스트 인 경우

import nltk 
import Set 

FILE=open("out.txt", "w") 
FILE.writelines("this is to show why using NNs :)!!!!\n") 

text1=raw_input() 
FILE.writelines("first text loaded.....\n") 
sentences1=text1.split('.') 
FILE.writelines("first text splited.....\n") 

text2=raw_input() 
FILE.writelines("second text loaded.....\n") 
sentences2=text2.split('.') 
FILE.writelines("second text splited.....\n") 



s=['a','b'] 
FILE.writelines("\n NNs for first:\n") 
for sen in sentences1: 
    tokens1= nltk.word_tokenize(sen) 
    tagged1 = nltk.pos_tag(tokens1) 
    for (x, y) in tagged1: 
     if y=='NN': 
      FILE.writelines(x+",") 
      s.insert(len(s),x) 
FILE.writelines(len(s1)) 


FILE.writelines("\n NNs for second:\n") 
for sen in sentences2: 
    tokens2= nltk.word_tokenize(sen) 
    tagged2 = nltk.pos_tag(tokens2) 
    for (x, y) in tagged2: 
     if y=='NN': 
      FILE.writelines(x+",") 
      s2[len(s2)]= x 
FILE.writelines(len(s2)) 

print "********temoum**********" 
FILE.close() 

답변

16

, 당신은 할 수 있습니다 :

s.insert(len(s),x) 

이는 '를 의미하고, "위치 len(s)에서 목록 s에 요소 x를 삽입" 목록의 끝에 요소를 다시 삽입하십시오. s가 세트 인 경우

, 당신은 할 수 있습니다 :

s.add(x) 

세트는 위치를 지정할 필요가 없습니다에는 순서가 없습니다. 세트에는 중복이 없으므로 필요한 경우 유용 할 수 있습니다. 그렇지 않은 경우 목록을 대신 사용할 수 있습니다.


예상치 못한 IndentationError

는 여기에서 찾을 수 있습니다 :

if y=='NN': 
    FILE.writelines(x+",") 
     s.insert(len(s),x) 

이 다음과 같아야합니다 목록에 대 설정 설명

if y=='NN': 
    FILE.writelines(x+",") 
    s.insert(len(s),x) 
+0

+1. – Ryan

+0

s.add (x)에 아직 문제가 있습니다 – user1472850

+0

뭔가 빠졌습니까? 아니면 처음's.append (c)'라고 말하는 복잡한 방법입니까? – delnan

관련 문제