import collections
weight_list = ["this","3"], ["is","5"]
foo = "This is a string"
def weighted_counter(weight_list, countstring):
counts = collections.Counter(countstring.lower().split())
return {word:int(weight)*counts.get(word,0) for word,weight in weight_list}
print weighted_counter(weight_list, foo)
print sum(weighted_counter(weight_list, "that is the this is it").itervalues())
aW1wb3J0IGNvbGxlY3Rpb25zCndlaWdodF9saXN0ID0gWyJ0aGlzIiwiMyJdLCBbImlzIiwiNSJdCmZvbyA9ICJUaGlzIGlzIGEgc3RyaW5nIgoKZGVmIHdlaWdodGVkX2NvdW50ZXIod2VpZ2h0X2xpc3QsIGNvdW50c3RyaW5nKToKICAgIGNvdW50cyA9IGNvbGxlY3Rpb25zLkNvdW50ZXIoY291bnRzdHJpbmcubG93ZXIoKS5zcGxpdCgpKQogICAgcmV0dXJuIHt3b3JkOmludCh3ZWlnaHQpKmNvdW50cy5nZXQod29yZCwwKSBmb3Igd29yZCx3ZWlnaHQgaW4gd2VpZ2h0X2xpc3R9CgpwcmludCB3ZWlnaHRlZF9jb3VudGVyKHdlaWdodF9saXN0LCBmb28pCnByaW50IHN1bSh3ZWlnaHRlZF9jb3VudGVyKHdlaWdodF9saXN0LCAidGhhdCBpcyB0aGUgdGhpcyBpcyBpdCIpLml0ZXJ2YWx1ZXMoKSk=