[newbie] making rows of table with discrete values for different number systems

Denis McMahon denismfmcmahon at gmail.com
Tue Feb 4 01:11:26 CET 2014


On Sun, 02 Feb 2014 09:44:05 -0800, Jean Dupont wrote:

> I'm looking for an efficient method to produce rows of tables like this:
> 
> for base 2 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 .
> .
> .
> 1 1 1 1
> 
> for base 3 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 1 0 0 0 0 0 1 1 0
> 0 0 0 1 2 .
> .
> 2 2 2 2 2 2
> 
> As you can see the rows are always twice the size of the base I _don't_
> need to have all rows available together in one array which would become
> too large for higher value number bases. It's sufficient to produce one
> row after the other, as I will do further data manipulation on such a
> row immediately.
> 
> If someone here could suggest best practices to perform this kind of
> operations,I'd really appreciate it very much
> 
> kind regards and thanks in advance jean

s=3
p=s*2

def b(n,x):
	s=[]
	while n:
		s.append(str(n%x))
		n=n/x
	if s==[]:
		return "0"
	return ''.join(s[::-1])

for i in range(s**p):
	r=("{:0"+str(p)+"d}").format(int(b(i,s)))
	if len(r)==p:
		print [int(r[a])for a in range(len(r))]

change s to 2 or 4 etc

-- 
Denis McMahon, denismfmcmahon at gmail.com



More information about the Python-list mailing list