- たとえば、次のファイルを使用する場合: http://vlm1.uta.edu/~athitsos/courses/cse1310_summer2013/assignments/assignment7/albums.txt 各バンドとそれらがリストされている回数をカウントする関数が必要ですファイルを降順で画面に出力します。
- 形式は、band1: number1 band2: number2 band3: number3 である必要があります。
これは私がこれまでに持っているものです:
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)
私が間違っていることに関するヒントは非常に役に立ちます。
質問する
68 次
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 に答える