2017-02-18 8 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

ありがとうございます。私はデータ型を変更したので、文字列を直接返すことができます。 –

関連する問題