17 lines
		
	
	
		
			465 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			465 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""util functions for collections_extended."""
 | 
						|
 | 
						|
 | 
						|
def hash_iterable(it):
 | 
						|
	"""Perform a O(1) memory hash of an iterable of arbitrary length.
 | 
						|
 | 
						|
	hash(tuple(it)) creates a temporary tuple containing all values from it
 | 
						|
	which could be a problem if it is large.
 | 
						|
 | 
						|
	See discussion at:
 | 
						|
	https://groups.google.com/forum/#!msg/python-ideas/XcuC01a8SYs/e-doB9TbDwAJ
 | 
						|
	"""
 | 
						|
	hash_value = hash(type(it))
 | 
						|
	for value in it:
 | 
						|
		hash_value = hash((hash_value, value))
 | 
						|
	return hash_value
 |