def group_by_key(param_list, key):
	"""
	Return a dictionary of the form {key_value: [param_list]}
	where the list of param sets is broken up according to common key values
	
	>>> param_list = [{'a':0, 'b':1, 'c':2, 'd':3, 'name':'counter'}, {'a':0, 'b':1, 'c':3, 'name':'jumper'}, {'a':0, 'b':'beta', 'name':'greek'}]
	>>> g = group_by_key(param_list, 'a')
	>>> for k in get_sorted_keys(g): print(k, len(g[k]))
	0 3
	None 0
	>>> g = group_by_key(param_list, 'b')
	>>> for k in get_sorted_keys(g): print(k, len(g[k])) 
	1 2
	None 0
	beta 1
	>>> g = group_by_key(param_list, 'd')
	>>> for k in get_sorted_keys(g): print(k, len(g[k]))
	3 1
	None 2
	>>> g = group_by_key(param_list, 'name')
	>>> for k in get_sorted_keys(g): print(k, len(g[k]))
	None 0
	counter 1
	greek 1
	jumper 1
	"""
	group = {'None':[]}
	for p in param_list:
		if key in p:
			val = str(p[key])
			if val in group:
				group[val].append(p)
			else:
				group[val]=[p]
		else:
			group['None'].append(p)
	return group