python检查文件和计数中的唯一ID

时间:2013-01-18 06:38:16

标签: python

在显示的每个ID的以下file.txt中,我需要检查为ID找到货币的次数。我怎么能这样做?

file.txt的

  ID101\tbill is $200
  ID101\tyour bill
  ID101\t $200 again
  ID101\t$100 is the generated amount
  ID101\t$50 is your amount
  ID101\t$74 is the amount
  ID102\tNo bill
  ID102\tbill is $75
  ID103\t$65 is your bill
  ID103\tno bill

f=open("file.txt")
arr=[]
count = 0
for l in f:     
   col = 0
   for i in l.split("\t"):
      if col == 0:
         if i not in arr: //tocheck whether it is a new id or not
            arr.append(i)
         if col == 1:
            if "$" in i:
              count += 1
      col += 1

如何检查每个ID的计数?

2 个答案:

答案 0 :(得分:0)

你会爱defaultdicts

from collections import defaultdict
counts = defaultdict(int)
with open("file.txt") as f:
    for line in f:
        id, content = line.split("\\t")
        if "$" in content:
            counts[id] += 1

请注意,这将完全忽略id s,其中一行不包含$符号。

答案 1 :(得分:0)

file = open('file.txt')
ids = {}
for line in file:
    if line.find('$') > -1:
        line_array = line.split("\t")
        id = line_array[0]
        if not ids.has_key(id):
            ids[id] = 0
        ids[id] += 1

for k in ids:
    print k + ': ' + str(ids[k])