Yes, I believe you are correct on all points. ---------------------------------------------------------------------------------------
Joe Veilleux IBM/Lotus Domino Server Quality Engineering 550 King Street Littleton MA 01460 Email: joeveill...@us.ibm.com Sharon Lucas/Austin/IBM To 10/26/2011 01:36 Joseph J PM Veilleux/Lexington/IBM@IBMUS cc Cindy Zhu <c...@fekete.com>, "staf-users@lists.sourceforge.net" <staf-users@lists.sourceforge.net> Subject Re: [staf-users] Iterating a dictionary in a STAX job(Document link: Joseph J Veilleux) Right, I should have shown it as follows: <script>testsWin = {'Harmony':0,'DeclinePlus':0, 'Harmony1':0, 'RTA':0} </script> <iterate var="test" in="sorted(testsWin.iterkeys())"> <log message="1">'test=%s' % test</log> </iterate> But, I don't think that Cindy wanted to sort the Map by key. She wanted to sort the map by order of insertion. -------------------------------------------------------------- Sharon Lucas IBM Austin, luc...@us.ibm.com (512) 286-7313 or Tieline 363-7313 From: Joseph J Veilleux/Lexington/IBM To: Sharon Lucas/Austin/IBM@IBMUS, Cc: Cindy Zhu <c...@fekete.com>, "staf-users@lists.sourceforge.net" <staf-users@lists.sourceforge.net> Date: 10/26/2011 12:11 PM Subject: Re: [staf-users] Iterating a dictionary in a STAX job Sharon, the List.sort() method in Python sorts a list in-place (i.e. it operates on the list itself; it does not yield a sorted list as output), so I doubt that the suggestion in your second paragraph would work, at least not in the specific way you have shown it. --------------------------------------------------------------------------------------- Joe Veilleux IBM/Lotus Domino Server Quality Engineering 550 King Street Littleton MA 01460 Email: joeveill...@us.ibm.com Sharon Lucas/Austin/IBM@ IBMUS To Cindy Zhu <c...@fekete.com> 10/25/2011 04:54 cc PM "staf-users@lists.sourceforge.net" <staf-users@lists.sourceforge.net> Subject Re: [staf-users] Iterating a dictionary in a STAX job A dictionary (dict) in Python does not preserve order. Instead of order, a dictionary uses a hashing algorithm to identify each item's place in the dictionary for fast lookup. For more information, google for information about Python dictionaries, for example, see http://homepage.mac.com/s_lott/books/python/html/p02/p02c05_maps.html. You could sort the keys (e.g. testsWin.keys().sort(), but that will sort the keys in alphabetical order, not the order in which you defined them. Instead, you could use a list as it preserves order (if you didn't really need a dictionary). For example, a list of strings, or a list of dictionaries, or what ever you needed. If you really need to use a dictionary, you could do something like described at http://stackoverflow.com/questions/60848/how-do-you-retrieve-items-from-a-dictionary-in-the-order-that-theyre-inserted . Here's an example that uses a list of strings: <script> testsWin = [ 'Harmony', 'DeclinePlus', 'Harmony1', 'RTA' ] </script> <iterate var="test" in="testsWin"> <log message="1">'test=%s' % test</log> </iterate> STAX Job's Message/Log Output: --------------------------------------------------- 20111025-15:36:47 Info test=Harmony 20111025-15:36:47 Info test=DeclinePlus 20111025-15:36:47 Info test=Harmony1 20111025-15:36:47 Info test=RTA Or you could use a list of dictionaries if you needed to store more information about each item in the list. For example: <script> testsWin = [ {'name':'Harmony', 'count':0}, {'name':'DeclinePlus', 'count':0}, {'name':'Harmony1', 'count':0}, {'name':'RTA', 'count':0} ] </script> <iterate var="test" in="testsWin"> <log message="1">'testName=%s, testCount=%s' % (test['name'], test ['count'])</log> </iterate> STAX Job's Message/Log Output: --------------------------------------------------- 20111025-15:36:47 Info testName=Harmony, testCount=0 20111025-15:36:47 Info testName=DeclinePlus, testCount=0 20111025-15:36:47 Info testName=Harmony1, testCount=0 20111025-15:36:47 Info testName=RTA, testCount=0 Note that in Python 2.7, an OrderedDict API was added that provides the same interface as regular dictionaries but iterates over keys and values in a guaranteed order depending on when a key was first inserted. However, STAX V3.5.0 and later uses Jython 2.5.2 which is the latest Jython version available and is based on Python 2.5 so it doesn't support the OrderedDict API. Jython development lags behind Python. -------------------------------------------------------------- Sharon Lucas IBM Austin, luc...@us.ibm.com (512) 286-7313 or Tieline 363-7313 From: Cindy Zhu <c...@fekete.com> To: "staf-users@lists.sourceforge.net" <staf-users@lists.sourceforge.net>, Date: 10/25/2011 03:05 PM Subject: [staf-users] Iterating a dictionary in a STAX job Hi, I have the following STAX job to iterate a dictionary and print out the keys in the dictionary. <script> testsWin = {'Harmony':0,'DeclinePlus':0, 'Harmony1':0, 'RTA':0} </script> <defaultcall function="main" /> <function name="main" scope="local"> <sequence> <iterate var="test" in="testsWin.keys()"> <log message="1">'test=%s' % test</log> </iterate> </sequence> </function> The log message shows in this order: Harmony1, DeclinePlus, RTA, Harmony. Is there a way to make the print out(message) has the same key order as that in variable testsWin? Thanks, Cindy ------------------------------------------------------------------------------ The demand for IT networking professionals continues to grow, and the demand for specialized networking skills is growing even more rapidly. Take a complimentary Learning@Cisco Self-Assessment and learn about Cisco certifications, training, and career opportunities. http://p.sf.net/sfu/cisco-dev2dev _______________________________________________ staf-users mailing list staf-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/staf-users ------------------------------------------------------------------------------ The demand for IT networking professionals continues to grow, and the demand for specialized networking skills is growing even more rapidly. Take a complimentary Learning@Cisco Self-Assessment and learn about Cisco certifications, training, and career opportunities. http://p.sf.net/sfu/cisco-dev2dev _______________________________________________ staf-users mailing list staf-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/staf-users
<<inline: graycol.gif>>
<<inline: pic01558.gif>>
<<inline: ecblank.gif>>
<<inline: doclink.gif>>
<<inline: pic27469.gif>>
------------------------------------------------------------------------------ The demand for IT networking professionals continues to grow, and the demand for specialized networking skills is growing even more rapidly. Take a complimentary Learning@Cisco Self-Assessment and learn about Cisco certifications, training, and career opportunities. http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________ staf-users mailing list staf-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/staf-users