2016-08-08 5 views
0

ここではPythonにかなり新しい、Pythonのタプル文

私はPythonのタプル

reportTuple = (('Keith', 'Saturday', 10), ('Jane', 'Monday', 12)) 

を持っていると私は値が土曜日の場合のみが、名前と電話番号を印刷する場合。 (印刷要素0, 2が要素1 value == Saturdayの場合のみ)

どのようにアイデアを書いてそれらをつかむように書くのですか?

答えて

1

ループ、中央の要素の値をチェック:

for i in reportTuple: # Loop through each element of reportTuple 
    if i[1] == "Saturday": # Is the day Saturday? 
     print(i[0]) # Print name 
     print(i[2]) # Print number 

可能性があり、私のようにkここに何の問題があったの? forループですか?あなたはリスト内包でこれを行うことができます

0

はるかにエレガントに、私が持っているよりも、これを行うためにいくつかの魔法の方法は、ほぼ確実に存在しているので、私は非常にカジュアルなPythonのユーザーだけど、私はこれを試み、それが働いた:

reportTuple = (('Keith', 'Saturday', 10), ('Jane', 'Monday', 12)) 
for report in reportTuple: 
    if report[1] == 'Saturday': 
     print(report[0], report[2]) 

プリント

を配列による
Keith 10 
0

はJunapaの修正と最初のリストを更新しました。

print(*("{}: {}".format(name,number) for (name, day, number) in reportTuple if day == 'Saturday')) 

あなたは、リスト内のif文の結果を保存したい場合、あなたはあなた

を返します

['{} {}'.format(name, number) for (name, day, number) in reportTuple if day == 'Saturday'] 

を行うことができます

Keith 10 

をプリントアウトします

['Keith 10'] 
+1

もし彼がそれを望むなら、それはここにあります。そうでなければ、彼が使うことができる他の答えがあります。私は最初にPythonを学び始めたときにリスト内包表記が本当に好きなので、リストの理解度を彼またはランダムな通行人にも追加すると思いました。 – Aur

+1

内部からの印刷は難しいフォームです。理解は機能的な構造であり、人々はその中に副作用を期待していません。そうでない場合は、reportTupleのday == '土曜日'の場合は(name、day、number)の書式(name()、{})) ' –