Hi;<br>I have the following code snippet:<br><br> print 'Original: ', catChains, '<br />'<br> while i < MAXLEVEL:<br> flag = 0<br> j = 0<br> while j < len(parents):<br> for chain in catChains:<br>
if parents[j] == chain[len(chain)-1]:<br> chain.append(children[j])<br> print '1: ', catChains, '<br />'<br> catChains.append(chain)<br> print '2: ', catChains, '<br />'<br>
flag = 1<br> j += 1<br> i += 1<br> if flag == 0:<br> break<br> print 'Final: ', catChains<br> <br>which prints this:<br><br>Original: [['prodCat1'], ['prodCat2']] <br>
1: [['prodCat1', 'prodCat3'], ['prodCat2']] <br>
2: [['prodCat1', 'prodCat3'], ['prodCat2'], ['prodCat1', 'prodCat3']] <br>
1: [['prodCat1', 'prodCat3', 'prodCat5'], ['prodCat2'], ['prodCat1', 'prodCat3', 'prodCat5']] <br>
2: [['prodCat1', 'prodCat3', 'prodCat5'], ['prodCat2'], ['prodCat1',
'prodCat3', 'prodCat5'], ['prodCat1', 'prodCat3', 'prodCat5']] <br>
Final: [['prodCat1', 'prodCat3', 'prodCat5'], ['prodCat2'],
['prodCat1', 'prodCat3', 'prodCat5'], ['prodCat1', 'prodCat3',
'prodCat5']]
<br><br>Why is it that my append statement *deletes* elements of my tuple? The entire code follows:<br><br>#! /usr/bin/python<br><br>import string<br>import cgitb; cgitb.enable()<br>import MySQLdb<br>import cgi<br>import sys,os<br>
sys.path.append(os.getcwd())<br>from login import login<br>import datetime, Cookie, random<br>from particulars import title<br>from templateFrame import top, bottom<br>from particulars import myCookie<br>import time<br>import fpformat<br>
from sets import Set<br><br>def makeNav():<br> print 'Content-type: text/html\r\n'<br> print '<html>\n<body>'<br> user, passwd, db, host = login()<br> db = MySQLdb.connect(host, user, passwd, db)<br>
cursor= db.cursor()<br> form = cgi.FieldStorage()<br> store = form.getfirst('store')<br> sql = 'select Category, Parent from categories%s;' % (store[0].upper() + store[1:])<br> cursor.execute(sql)<br>
children = [itm[0] for itm in cursor]<br> parents = [itm[1] for itm in cursor]<br> catChains = []<br> i = 0<br> while i < len(parents):<br> if parents[i] is None:<br> child = []<br> child.append(children[i])<br>
catChains.append(child)<br> i += 1<br> i = 0<br> MAXLEVEL = 10<br> print 'Original: ', catChains, '<br />'<br> while i < MAXLEVEL:<br> flag = 0<br> j = 0<br> while j < len(parents):<br>
for chain in catChains:<br> if parents[j] == chain[len(chain)-1]:<br> chain.append(children[j])<br> print '1: ', catChains, '<br />'<br> catChains.append(chain)<br>
print '2: ', catChains, '<br />'<br> flag = 1<br> j += 1<br> i += 1<br> if flag == 0:<br> break<br> print 'Final: ', catChains<br> lastChain = []<br> lastChain.append('root')<br>
print "<ul id='nav' class='dropdown dropdown.horizontal'>"<br> for chain in sorted(catChains):<br> link = ''<br> i = 0<br> while i < len(chain):<br> link += '%s/' % string.replace(chain[i], ' ', '_')<br>
i += 1<br> link = '%s.py' % link[:-1]<br> if len(chain) == len(lastChain)+1: # This is a new category level within the current chain.<br> print "%s<ul>" % (' ' * (len(chain)-1))<br>
elif len(chain) == len(lastChain): # This is a new category within in the same parent level.<br> pass # This is just here to remind me how this works!<br> j = 0<br> while len(chain) < len(lastChain)-j:<br>
j += 1<br> print "%s</ul>" % (' ' * (len(chain)-j))<br> print "%s<li id='n-%s'><a href='%s' class='dir'>%s</a></li>" % ((' ' * len(chain)), chain[len(chain)-1].lower(), link, chain[len(chain)-1])<br>
lastChain = chain<br> print '</ul>'<br><br>makeNav()<br><br>PS (Mainly, I believe, for Carsten): While programming is difficult for me, I am writing (and have pretty much finished) this (almost) fully automated shopping cart. I don't intend to write any other serious programming project. However, a shopping cart is vital to my Web design business. I will hereafter outsource my programming. But, as any good supervisor knows, one has to know how to supervise! If I can't read code, then I'm at the mercy of my programmer(s). If I can't afford to hire some top gun who can supervise, then it's my responsibility. Plus, if my programmer(s) quit, I need to step in and take over. I'm an ok businessman, and absolutely gifted in sales. And in poetry ;)<br>
beno<br clear="all"><br>-- <br>The Logos has come to bear<br><a href="http://logos.13gems.com/">http://logos.13gems.com/</a><br>