if statement - Python Counter doesn't count -
import urllib2 f=urllib2.urlopen("http://www.mbnet.com.pl/dl.txt") list = range(1,50) counter={} lines in f: tab_lines=lines.split(" ") formated_tab=tab_lines[-1].strip().split(',') #print formated_tab in formated_tab: if in list: counter[i]+=1 print counter.items() my counter doesn't work , don't know why :(
this list of lottery numbers. count how many times drawn each number.
instead of using:
counter[i] = counter.get(i, 0) + 1 you can try collections.defaultdict:
counter = defaultdict(int) so final version should this:
import urllib2 collections import defaultdict f=urllib2.urlopen("http://www.mbnet.com.pl/dl.txt") list = range(1,50) counter=defaultdict(int) # use defaultdict here lines in f: tab_lines=lines.split(" ") formated_tab=tab_lines[-1].strip().split(',') in formated_tab: if int(i) in list: counter[i] += 1 # don't worry, happy :) sumall=sum(counter.values()) number, value in counter.items(): print ('number {} drawn {} times , {}% of all').format(number,value,100*value/sumall) i'll give example show collections.defaultdict here:
>>> collections import defauldict >>> = {} >>> a['notexist'] traceback (most recent call last): file "<stdin>", line 1, in <module> keyerror: 'notexist' >>> b = defaultdict(int) >>> b['notexist'] 0 class collections.defaultdict([default_factory[, ...]]) defaultdict subclass of built-in dict class, don't scared, can more it. once specified default_factory variable, when key not exist, defaultdict supply 1 according default_factory. note magic happen when using dict['key'] or dict.__getitem__(key).
the doucumetaion here: collections.defaultdict
Comments
Post a Comment