2016-10-27 16 views
-1

Pythonを使用してDSクラスを使用して、次の関数を修正するように頼んだところです。私はこのクラスを取るためにPython並列でプログラミングを学んでいるので、私は一種の助けを失っています。それは感謝されます!Pythonでのラムダとリストの理解

>>> people = ['Dr. Christopher Brooks', 'Dr. Kevyn Collins-Thompson', 'Dr. VG Vinod Vydiswaran', 'Dr. Daniel Romero'] 
>>> def split_title_and_name(people_list): 
...  return [p.split('. ') for p in people_list] 
...     #^Assuming title will always be followed by dot '.', 
         # There will be only one '.' dot in the sample string 

>>> split_title_and_name(people) 
[['Dr', 'Christopher Brooks'], 
#^ ^
# Title Name 
['Dr', 'Kevyn Collins-Thompson'], 
['Dr', 'VG Vinod Vydiswaran'], 
['Dr', 'Daniel Romero']] 

注:を間違いなく、あなたはこっちラムダを必要としない関数の名前に基づいて

people = ['Dr. Christopher Brooks', 'Dr. Kevyn Collins-Thompson', 'Dr. VG Vinod Vydiswaran', 'Dr. Daniel Romero'] 

def split_title_and_name(person): 
    return person.split()[0] + ' ' + person.split()[-1] 

#option 1 
for person in people: 
    print(split_title_and_name(person) == (lambda person:???)) 

#option 2 
#list(map(split_title_and_name, people)) == list(map(???)) 
+1

なぜここにラムダが必要だと思いますか?正確に何が尋ねられているのですか?どのクラスの話題ですか? – njzk2

+3

修正されたときの結果はどうでしょうか? – xZise

+1

問題/質問は何ですか? – MooingRawr

答えて

1

split_title_and_nameは、私はあなたがこれをしたいと思います。それはどんな文脈でもここでは必要ではありません。

+1

素晴らしい答えですが、その人の名前に 'Dr.のような' .'が含まれているとどうなりますか? Bob J. Lee'? – MooingRawr

+1

あなたは正しいです。それを修正するのは軽微な変更だ。しかし、これはユーザーが渡そうとするデータに完全に依存しています。 *タイトルがない場合はどうすればいいですか?*いつも何が起こるか。ユーザーからのサンプルの例を参考にしてください。私は彼が言及したリストがサンプルセット全体であると仮定しています:) –

+0

スペースの最初のインスタンスで分割するとそのようになります。タイトルを確認するには、できることがいくつかあります。最も簡単なのは、スペースのインスタンスの前にピリオド(これはあなたがやっているもの)があるかどうかを調べることです。それは良い指標になります。しかし、これはもちろん信頼できません。もう1つの方法は、タイトルの可能な値のホワイトリストを用意して、それをチェックすることです。 – Goodies

関連する問題