2017-02-18 2 views
-2

해시 태그를 기반으로 파티를 반환하는 함수를 만들고 싶습니다. 여기에 내가 무엇을 가지고 있습니다 :함수 파이썬에서 조건부 반환

def party(tw) #define party by compare hashtag to a predefined list 
    #extract hashtag words from tw, and store them in tag_dict 
    tag_dict={tag.strip("#") for tag in tw.split() if tag.startswith("#")} 
    tag in tag_dict 

    #Compare each hashtag with Party Number of each hash tag, assign and party number to each hashtag 
    party_number={k:int(party_tag[k]) for k in tag_dict if k in party_tag} 

    #extract the value of party number to a variable: number 
    number = party_number.values() 

    if number==1 
     return "Liberal" 
    if number==2 
     return "Conservative" 
    if number==3 
     return "NPD" 
    if number==0 
     return "Other" 

어떻게 조건부 수익을 쓸 수 있습니까? 그리고 트윗이 여러 파티의 해시 태그를 가지고있을 때 어떻게 처리 할 수 ​​있습니까?

+2

는 문자열 값이있는 경우

from random import randint def return_something(): parties = ["Other", "Liberal", "Conservative", "NPD"] number = randint(0,3) print(number) try: #return number if exist (could change "not found" to "Other" return parties[number] except IndexError: #I.E. not in the list return "Party not found." print(return_something()) 

당신은이 샘플 코드로 대신 사전을 사용할 수 있습니다 'number '는 숫자가 아니라 숫자 목록 (사전 값보기)입니다. 반환 할 함수는 무엇입니까? 파티 이름 목록? –

답변

0

항상 정수가 될 경우 목록을 작성하고 해당 목록을 기반으로 적절한 값을 반환 할 수 있습니다. 예를 들면 :

parties = {'dem': "Liberal", 'rep': "Conservative", 'market': "NPD"} 
#Defining the dictionary out of the function so it doesn't have to be rebuilt 

def return_something(p): 
    return parties.get(p, 'Other') #fetches and returns a value or a default ("Other") 

party = "not in tag" #or whatever you use to get values 
print(return_something(party)) 

또는 대안 :

def return_something(p): 
    return { 
     'dem': "Liberal", 
     'rep': "Conservative", 
     'market': "NPD" 
    }.get(p, "Other") 

print(return_something("market")) 
+0

감사합니다. 데이터 유형을 변경하여 문자열을 직접 반환 할 수 있습니다. –