0
  1. たとえば、次のファイルを使用する場合: http://vlm1.uta.edu/~athitsos/courses/cse1310_summer2013/assignments/assignment7/albums.txt 各バンドとそれらがリストされている回数をカウントする関数が必要ですファイルを降順で画面に出力します。
  2. 形式は、band1: number1 band2: number2 band3: number3 である必要があります。
  3. これは私がこれまでに持っているものです:

    def read_albums(filename):
    
    
        counter = 0
        work_list = []
        my_file = open(filename, 'r')
        for line in my_file:
            my_list = line.split()
            work_list = line.split()
    
        for i in range(0, len(my_list)):
            item = my_list[0]
            counter = 1
            j = i + 1
            for j in range(j, len(my_list)):
                    if j > len(my_list):
                            j = len(my_list)        
                    if item == my_list[0]:
                            counter = counter + 1
                            work_list[j] = None
                    else:
                            continue
            if work_list[0] != None:
                    print(work_list[0], counter)
    
  4. 私が間違っていることに関するヒントは非常に役に立ちます。

4

3 に答える 3

2

このようなものは、Pythonic の方法です。

from collections import Counter

with open('albums.txt') as f:
    print Counter(line.split(' - ')[0] for line in f)

このトークをご覧になることをお勧めします。

于 2013-08-09T00:26:56.863 に答える
2
d = defaultdict(int)
with open("some_file.txt") as f:
     for line in file:
         artist,album = line.split("-")
         d[artist] += 1

for k,v in d.items():
    print "%s:%s"%(k,v)
于 2013-08-09T00:26:49.370 に答える