0
def process_students(r):

    '''r is an open reader with no data about students: their name, cdf account, age, college and 
       home city. Each line has the following format:
       name, cdf, age, college, city.

       there are no commas other than the ones used as separators.

       Return a dictionary in which each key is a college and its value is the list of cdf accounts 
       for students at that college'''

この質問をどのように処理するかについて混乱しています。私はこの模擬試験を行っていますが、これは問題の 1 つです。新しい辞書を作成することから始めました。次に何をすればいいですか?

    d = {}
    for line in r:
         line.strip()

テキスト ファイルから行を取り出すとき、常にそれを削除する必要がありますか?

質問のパートbも紛らわしいです。上記の形式で「students.txt」というファイルを開き、関数を呼び出して辞書を作成し、辞書を「students.pck」というファイルにピクルするプログラムを作成するように指示します。cpickleがインポートされ、その関数process_studentsが定義されていると想定できます。

漬物が何かわかりません。しかし、私は最初のものを終わらせることさえできないので、とにかく2番目のものを続ける方法がわかりません.

4

4 に答える 4

1

これは勉強なので、誰かの解法を読むより自分で解いた方が勉強になると思います。良い出発点は、入力ファイルを解析するためのcsvモジュールと、辞書を操作する方法についてのPythonヘルプのチュートリアルセクションを見ることです。

import csv

def process_students(r):
    for row in csv.reader(r, delimiter=','):
        print row  # <-- rather than print, you should build dictionary here

個人的には csv モジュールを使用します。process_students の代替ループは次のようになります。

    for line in r:
        row = line.strip().split(',')
        print row
于 2012-04-19T21:43:23.130 に答える
0

データ ファイルを読み取るための Python CSV モジュールを確認してから、各 csv 行を処理するときに、値を辞書に挿入します。http://docs.python.org/library/csv.html

特に、これを見てください: http://docs.python.org/library/csv.html#csv.reader

それはおそらくparamreaderによって表されることを説明しています。r

于 2012-04-19T21:39:58.667 に答える
0

テキスト ファイルから行を取り出すとき、常にそれを削除する必要がありますか?

これは、行末文字を取り除く簡単な方法です。私はあなたがそれらを必要としないと思います:)

于 2012-04-19T21:55:51.970 に答える
0

当然のことながら、ほとんどの人は完全な解決策を提供することに消極的です。なぜなら、あなたはそこからあまり学ばないからです。ここにいくつかの指針があります...

1) あなたは自分のセリフを読みました。行は文字列です。文字列の split メソッドを使用して、コンポーネント文字列のリストに分割します。例えば、"this,is,a,test".split(",") # => ["this", "is", "a", "test"]

2) リストの要素にアクセスするには:

mylist = [1,2,3,4]
mylist[2] # => 3

#or map the values to variable names
a,b,c,d = mylist

3) 辞書は使うのが楽しい:

mydict = {}
mydict['things'] = []
mydict['things'].append("foo")
mydict['other_things'] = ["bar"]

mydict['things'] # => ["foo"]
mydict['other_things'] # => ["bar"]

これらは、あなたを助けるであろう種類のものへのほんのいくつかのヒントです.

于 2012-04-19T21:56:09.800 に答える