mirror of
				https://github.com/balkian/gists.git
				synced 2025-10-31 15:48:26 +00:00 
			
		
		
		
	This commit is contained in:
		
							
								
								
									
										20
									
								
								recursivedict.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								recursivedict.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| class RecursiveDict(UserDict): | ||||
|  | ||||
|     def __getitem__(self, k): | ||||
|         if not isinstance(k, Iterable): | ||||
|             return self.data[k] | ||||
|         dest = self.data | ||||
|         for j in k: | ||||
|             dest = dest[j] | ||||
|         return dest | ||||
|  | ||||
|     def __setitem__(self, k, v): | ||||
|         if not isinstance(k, Iterable): | ||||
|             return self.data[k] = v | ||||
|         levels = len(k) | ||||
|         dest = self.data | ||||
|         for j in range(levels-1): | ||||
|             if k[j] not in dest: | ||||
|                 dest[k[j]] = {} | ||||
|             dest = dest[k[j]] | ||||
|         dest[levels-1] = v | ||||
		Reference in New Issue
	
	Block a user