0

私はプログラミングだけでなくPythonも初めてです。

私はそれを実装しようとしましたが、成功せず、あなたの助けが必要です.

奇妙なキー値を持つ辞書があります。キーの 1 つをインデックス番号として使用し、もう 1 つのキーを値として使用し、ディクショナリに格納されている値を 3 番目の列として使用する必要があります。

たとえば、辞書が

{'Michael', 'Student<matriculation no>', 'marks obtained' :  40 }

結果はこのようになるはずです

Name                  Admission no                 marks obtained

Michael              matriculation no                    40

sara                 matriculation no                    60

ここで、matriculation no は、辞書の 2 番目のキーから抽出された値です (値ごとに異なります)。

これは約100行続きます。

これを行う方法を親切に提案してください。

4

1 に答える 1

1

複数のキーはありません。あなたの例では、あなたのキーはタプルです('Michael', 'Student', 'marks obtained')(ちなみに、辞書の構文は間違っています:{('Michael', 'Student', 'marks obtained') : 40}あなたが暗示していることに基づいている必要があります)。

2 人の生徒が同じ名前を持たないことが保証されている場合 (おそらく姓とミドルネームのイニシャルを含めることができます!)、その名前だけをキーとして使用できます。次に、値を tuple にすることは理にかなっています(matriculation, marks obtained)。そのように: {"Michael" : ('Student', 40)}.

これらの生徒を印刷したい場合print name, students[name][0], "no", students[name][1]studentsはあなたの辞書でありname、 は生徒の名前である文字列であると言うことができます'Michael'

ちなみに、入学のために他に何ができるかわかりません'Student'。実際に他の値を持つことができない限り、それを含める必要はないように思えます。

ここでの良い比喩は'Michael'、彼に関連付けられた何らかのデータ、つまり、彼の入学ステータスと取得したマークの数を持っていると考えることです。これらのことは他の人にも起こる可能性があるため、入学したという状態は'Michael'(特に)それに関連付けられておらず、40点を取得したことにも(特に)関連付けられていません。'Michael'したがって、適切なキーは生徒の名前です。キーは一意である必要があります。そうでない場合、2 つ以上のデータ (値) が同じもの (キー) に関連付けられる、衝突と呼ばれる問題が発生します。


大きな編集

編集した投稿を見ると、同じことは決してないため、キーは実際には入学番号でなければならないようです。これで、辞書は になります{matriculation_no : (name, marks)}。そして、印刷は今print students[matriculation_no][0], "Admission", matriculation_no, students[matriculation_no][1]かそのようなものです。それは、文字列に必要かどうかによって異なり"Admission"ます。


マイナーな編集:

ファイルに書き込みたい場合は、file.write()代わりに使用してください。

于 2013-06-26T21:30:46.243 に答える