Re: [Tutor] capwords, maketrans
Ok thanks all. The doucmentation is confusing on that point. Also when it refers to the methods becoming methods of string objects a link would be nice. Regards, Stephen From: John Fouhy [EMAIL PROTECTED] To: Jacob S. [EMAIL PROTECTED] CC: tutor@python.org Subject: Re: [Tutor] capwords, maketrans Date: Thu, 14 Jun 2007 13:30:42 +1200 On 14/06/07, Jacob S. [EMAIL PROTECTED] wrote: Hi guys. I was just wondering what's going to happen to capwords and maketrans when the string module is finally terminated. As far as I know, the string module as a whole is not going away. In particular, the string module supplies various constants that are quite useful. Only those string functions that exist as string methods (and are on the deprecated list) will eventually die. -- John. ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor _ Hotmail to go? Get your Hotmail, news, sports and much more! http://mobile.msn.com ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Table of replacements for deprecated fns from 'string'module?
Stephen McInerney [EMAIL PROTECTED] wrote Where is there a table of replacements for the deprecated 'string' fns I'm not sure exactly what you are after but comparing these lists might help: import string dir(string) ['Template', '_TemplateMetaclass', '__builtins__', '__doc__', '__file__', '__name__', '_float', '_idmap', '_idmapL', '_int', '_long', '_multimap', '_re', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'atof', 'atof_error', 'atoi', 'atoi_error', 'atol', 'atol_error', 'capitalize', 'capwords', 'center', 'count', 'digits', 'expandtabs', 'find', 'hexdigits', 'index', 'index_error', 'join', 'joinfields', 'letters', 'ljust', 'lower', 'lowercase', 'lstrip', 'maketrans', 'octdigits', 'printable', 'punctuation', 'replace', 'rfind', 'rindex', 'rjust', 'rsplit', 'rstrip', 'split', 'splitfields', 'strip', 'swapcase', 'translate', 'upper', 'uppercase', 'whitespace', 'zfill'] dir('') ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__str__', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'replace', 'rfind', 'rindex', 'rjust', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] Notice the long list of predicate methods that largely replace the idiom of looking for a match in the string constants. ie instead of: if char in string.lowercase: you can use if char.islower(): The only missing function I can see is maketrans(). (capwords seems to be replaced with title, and the type conversions are now in their type objects) The list of predicates is not complete however. But of course the string objects add a number of extra methods too. (eg startwith, endswith, and a bunch of operators etc) HTH, -- Alan Gauld Author of the Learn to Program web site http://www.freenetpages.co.uk/hp/alan.gauld ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Componentone - TrueDBGrid Control
Pradeep Kumar [EMAIL PROTECTED] wrote Is wxPython have Componentone Trudbgrid like control. If yes, Please inform. if No, how we can made one. I've no idea what a Trudbgrid is but assuming it's a bit like the live data grids used in Delphi then the answer is no, not as far as I can tell. However is an approximation in the form of a wx.grid.PyGridTableBase which you can subclass to connect to a database and then connect to a grid object using grid.SetTable() Probably better asking on the wxPython mailing list though, they are more expert in wxPython matters. HTH, -- Alan Gauld Author of the Learn to Program web site http://www.freenetpages.co.uk/hp/alan.gauld ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
[Tutor] #!/usr/bin/env python vs #!/usr/local/bin/python
hi list, how to choose between #!/usr/bin/env python and #!/usr/local/bin/python in the beginning of the script ? e. - SCENA - Ĺäčíńňâĺíîňî ÁĹÇĎËŔŇÍÎ ńďčńŕíčĺ çŕ ěîáčëíč ęîěóíčęŕöčč č ňĺőíîëîăčč. http://www.bgscena.com/ ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] #!/usr/bin/env python vs #!/usr/local/bin/python
* (Thu, 14 Jun 2007 13:14:13 +0300) how to choose between #!/usr/bin/env python and #!/usr/local/bin/python in the beginning of the script ? Just choose. Say I want to the script. Say I want '#!/usr/bin/env python' ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] locking files
You can look into the flock or lockf methods in fcntl module (or) the following link will help you http://www.python.org/doc/2.4/lib/module-fcntl.html VishnuMohan Alan Gauld wrote: Jeff Peery [EMAIL PROTECTED] wrote does anyone know if there is a way in python to lock a file so others cannot open it, or can only read it? Thats normally controlled by your OS and the rules vary slightly between them. In general if you open a file for writing the OS should lock it against writing (and in some cases against reading too!). So if you want to lock an existing file while you read and write you could use a mode string of 'r+'. If you want to create a new locked file use 'w+''. BUT remember that its up to you to manage where the cursor is, otherwise you could wind up overwriting your data. Another way to protect access, but less reliable, is to change the file permissions (using os.chmod()) at the start of the operation and change themback at the end. But that will only protect ahainst access by other users not against access by other programs that you might be running! Also you need to have permission to change permissions in the first place! HTH, ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
[Tutor] Certificate creation.
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi All, Is there a way to create ssl certificates with python and GNUTLS? I am part of a project http://www.bongo-project.org which is a mail and calendering solution. We use python in our project to a large extent but we have a problem with the ssl key generation using GNUTLS. Some machines take days to create enough random data to create the certificates because they are headless and don't have key input for us to capture. We currently use a python script to run our set-up program and this in turn creates the certificates. Is there another way to create certificates from a python script that will speed things up for these types of machines? I would appreciate any help on this thanks Regards Lance -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFGcUsXOw09RVRgt9wRAgfkAJ993ha5e38OS5YAc0xAaDg7GMGxRgCgnfCR j6oeFdWInj4xp2fIloiQxfM= =TlaD -END PGP SIGNATURE- ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] #!/usr/bin/env python vs #!/usr/local/bin/python
On 6/14/07, Ezra Taylor [EMAIL PROTECTED] wrote: I think Emilia means what's the difference. From what little I know, #!/usr/bin/env python will choose the first python that's in your path. Were as the second option, you explicitly choose which instance of python you want. I'm using using python from Activestate. So my shebang is to the Activestate directory for python. If I'm wrong, please correct. Ezra On 6/14/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: hi list, how to choose between #!/usr/bin/env python and #!/usr/local/bin/python in the beginning of the script ? e. - SCENA - Ĺäčíńňâĺíîňî ÁĹÇĎËŔŇÍÎ ńďčńŕíčĺ çŕ ěîáčëíč ęîěóíčęŕöčč č ňĺőíîëîăčč. http://www.bgscena.com/ ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor -- Ezra Taylor ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor The real difference here is that by using the env command, you have the option to input many different settings preferences before calling the python of your choice. The statement above, is a very simple choice of the python based upon the current environment, but it could be augmented very easily. I suggest that you check out the man page for the command env. -- David Duncan Registered Linux User #279425 http://counter.li.org ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] #!/usr/bin/env python vs #!/usr/local/bin/python
Okay, I guess, people are missing points here. When do you #!/usr/local/bin/python You are specifying the location to the python executable in your machine, that rest of the script needs to be interpreted with. You are pointing to python is located at /usr/local/bin/python Consider the possiblities that in a different machine, python may be installed at /usr/bin/python or /bin/python in those cases, the above #! will fail. For those cases, we get to call the env executable with argument which will determine the arguments path by searching in the $PATH and use it correctly. Thus, #/usr/bin/env python Will figure out the correct location of python ( /usr/bin/python or /bin/python from $PATH) and make that as the interpreter for rest of the script. - ( env is almost always located in /usr/bin/ so one need not worry what is env is not present at /usr/bin) Hope this helps. -- Senthil The price of seeking to force our beliefs on others is that someday they might force their beliefs on us. -- Mario Cuomo From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Duncan Sent: Thursday, June 14, 2007 19:44 To: tutor@python.org Subject: Re: [Tutor] #!/usr/bin/env python vs #!/usr/local/bin/python On 6/14/07, Ezra Taylor [EMAIL PROTECTED] wrote: I think Emilia means what's the difference. From what little I know, #!/usr/bin/env python will choose the first python that's in your path. Were as the second option, you explicitly choose which instance of python you want. I'm using using python from Activestate. So my shebang is to the Activestate directory for python. If I'm wrong, please correct. Ezra On 6/14/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: hi list, how to choose between #!/usr/bin/env python and #!/usr/local/bin/python in the beginning of the script ? e. - SCENA - Ĺäčíńňâĺíîňî ÁĹÇĎËŔŇÍÎ ńďčńŕíčĺ çŕ ěîáčëíč ęîěóíčęŕöčč č ňĺőíîëîăčč. http://www.bgscena.com/ ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor -- Ezra Taylor ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor The real difference here is that by using the env command, you have the option to input many different settings preferences before calling the python of your choice. The statement above, is a very simple choice of the python based upon the current environment, but it could be augmented very easily. I suggest that you check out the man page for the command env. -- David Duncan Registered Linux User #279425 http://counter.li.org ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Automatic generation of an all possible combinations array
Another simplest way of doing it is from random import * from sys import * def bin_list(n): bin_val = 0 if n = 0: bin_val = 2**n - 1 list = [] while bin_val = 0: list.append([((bin_val y) 1) for y in range(n-1,-1,-1)]) bin_val -= 1 shuffle(list) return list bin_list(3) gives output as [ [0, 1], [1, 1], [0, 0], [1, 0] ] Output list of patterns is random, we get different patterns for next run. -VishnuMohan Hugh M wrote: The 2**n different lists that you are seeking have a direct association to the binary representation of the integers 0 through (2**n)-1. You can use this fact and the repeated division method for converting numbers between different bases to generate these lists and form the desired list of lists: def bit_list_maker(n): x = 2**n solution_set = [] for i in range(x): this_answer = [] while i0: this_answer.append(i%2) i=i/2 while len(this_answer)n: this_answer.append(0) this_answer.reverse() solution_set.append(this_answer) return solution_set * * Another fun way to do it is to build up the lists recursively. The possibilities for n bits can be built from the possibilities for n-1 bits by adding a 1 and a 0 to each possibility (ending up with twice as many elements): def recursive_bit_list(n): if n==1: return [[0],[1]] else: return map(lambda x: x+[0], recursive_bit_list(n-1)) + \ map(lambda x: x+[1], recursive_bit_list(n-1)) Hope this helps! -Hugh On 6/14/07, *Andy Cheesman* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote: Hi people I am trying to generate an array of all possible combinations of 1, and zeros (see example data) for a rather nice Kinetic mote Carlo program which I am writing python. So far, I've been working out for combinations for 4 or less species by hand as it is quick! but I am looking to automate the process so I can compute combinations for large numbers of possible species. I could automate the generation of the array by the use of multiple loops but that doesn't seem rather pythonic. I was wondering if anyone had any sensible suggestions or pointers for efficient mechanisms for the array. Many Thanks Andy Example Data 3 species array([[1, 1, 1], [1, 1, 0], [1, 0, 1], [0, 1, 1], [1, 0, 0], [0, 1, 0], [0, 0, 1], [0, 0, 0]]) 4 species array([[1, 1, 1, 1], [0, 1, 1, 1], [1, 0, 1, 1], [1, 1, 0, 1], [1, 1, 1, 0], [1, 1, 0, 0], [1, 0, 1, 0], [1, 0, 0, 1], [0, 1, 1, 0], [0, 1, 0, 1], [0, 0, 1, 1], [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1], [0, 0, 0, 0]]) ___ Tutor maillist - Tutor@python.org mailto:Tutor@python.org http://mail.python.org/mailman/listinfo/tutor ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] #!/usr/bin/env python vs #!/usr/local/bin/python
Okay, I guess, people are missing points here. #!/usr/local/bin/python You are specifying the location to the python executable in your machine, that rest of the script needs to be interpreted with. You are pointing to python is located at /usr/local/bin/python Consider the possiblities that in a different machine, python may be installed at /usr/bin/python or /bin/python in those cases, the above #! will fail. For those cases, we get to call the env executable with argument which will determine the arguments path by searching in the $PATH and use it correctly. Thus, #/usr/bin/env python Will figure out the correct location of python ( /usr/bin/python or /bin/python from $PATH) and make that as the interpreter for rest of the script. - ( env is almost always located in /usr/bin/ so one need not worry what is env is not present at /usr/bin) senthil is correct in this regard. the bottom line is that the one with env is more flexible and will run on more systems and more types of systems because it uses the env command to find where python is located and executes it. the other one simply will *not* work if python is not installed in that exact location. cheers, -- wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Core Python Programming, Prentice Hall, (c)2007,2001 http://corepython.com wesley.j.chun :: wescpy-at-gmail.com python training and technical consulting cyberweb.consulting : silicon valley, ca http://cyberwebconsulting.com ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
[Tutor] Finding all locations of a sequence
Ok, please bear with me, I'm very new to programming and python. And my question is rather...convoluted. I have a bunch of sequences (about 4100 or so), and want to know where they are in a very, very large string of letters. But wait, there's more. Some of these sequences match to more than 'word' (for example...to be consistent with later, chicken could match to poultry or chicken). example of what I want to do (on a much smaller scale): Say I have chicken and I want to know where it occurs in a string of words, but I want it to match to both chicken and poultry and have the output of: chicken (locations of chicken and poultry in the string) or something like that. The string I'm dealing with is really large, so whatever will get through it the fastest is ideal for me. I hope this all makes sense... If it's possible to have pseudocode that would be helpful. ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Get max quantity
Brian Wisti wrote: Hi Carlos, On 6/13/07, Carlos [EMAIL PROTECTED] wrote: Hello, If I have a dictionary like: inventory = {'apples': 430, 'bananas': 312, 'oranges': 525, 'pears': 217} How can I get the item with the largest quantity? I tried: max(inventory) but got: 'pears' What I would like to get is 'oranges', at least in this case. Thanks, Carlos ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor There are indeed several ways to sort this particular cat. Here's my own favorite: # Sort the list of keys by inventory count, from high to low inventory {'pears': 217, 'apples': 430, 'oranges': 525, 'bananas': 312} items = inventory.keys() items ['pears', 'apples', 'oranges', 'bananas'] items.sort(cmp=lambda a,b: cmp(inventory[b], inventory[a])) items ['oranges', 'apples', 'bananas', 'pears'] items[0] 'oranges' You should learn how to use the key parameter to sort, it is much more efficient than using cmp and IMO easier to write and understand. In this case, you could use key=inventory.__getitem__ It does result in another list, same as the the approaches listed by Kent and Jason. If *all* you were interested was the key associated with the greatest inventory count, you could wrap your favorite solution in a function and return the key from that. Neither of my original suggestions created another list. This is actually a significant difference between my solutions using max() and yours and Jason's using sort. If the list is long using max() could be much more efficient because it just makes a single pass through the list. max() has O(n) complexity whereas in general sort is O(n log n) so as n gets large the advantage of max() should increase. Also for large n there should be an advantage to not creating the intermediate list. As always, if you care about the time taken by an operation, measure (with timeit); I am just making educated guesses. Kent Kind Regards, Brian Wisti http://coolnamehere.com/ ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] #!/usr/bin/env python vs #!/usr/local/bin/python
On Thu, Jun 14, 2007, Rolando Pereira wrote: [EMAIL PROTECTED] escreveu: Okay, I guess, people are missing points here. When do you #!/usr/local/bin/python You are specifying the location to the python executable in your machine, that rest of the script needs to be interpreted with. You are pointing to python is located at /usr/local/bin/python Consider the possiblities that in a different machine, python may be installed at /usr/bin/python or /bin/python in those cases, the above #! will fail. For those cases, we get to call the env executable with argument which will determine the arguments path by searching in the $PATH and use it correctly. Thus, #/usr/bin/env python Will figure out the correct location of python ( /usr/bin/python or /bin/python from $PATH) and make that as the interpreter for rest of the script. - ( env is almost always located in /usr/bin/ so one need not worry what is env is not present at /usr/bin) ... I've always used #!/usr/bin/python... Perhaps I should use the #!/usr/bin/env python one. The case where ``#!/usr/bin/env python'' won't work is where there are multiple versions of python on the system, and one wants to run a version that's not first in the PATH. In that case one needs to put the full path to the proper executable. Bill -- INTERNET: [EMAIL PROTECTED] Bill Campbell; Celestial Software LLC URL: http://www.celestial.com/ PO Box 820; 6641 E. Mercer Way FAX:(206) 232-9186 Mercer Island, WA 98040-0820; (206) 236-1676 ``The trouble with fighting for human freedom is that one spends most of one's time defending scoundrels. For it is against scoundrels that oppressive laws are first aimed, and oppression must be stopped at the beginning if it is to be stopped at all.'' -- H. L. Mencken ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Finding all locations of a sequence
Ok, what I have is a RNA sequence (about 5 million nucleotides [characters] long) and have (4100) subsequences (from another sequence) and the sub-sequences are 6 characters long, that I want to find in it. The problem is the exceptional bond of U:G, which results in U bonding to A (as per normal) and G (the abnormal bond) and G to bond with C (as per normal) and U. Normally I'd go to search software already available, however what I need done isn't covered b y anything out there so far. That and I believe that they do not deal with the exceptional bond. In any event, I want to know where the subsequences can bind in the larger RNA sequence (ie, the location of binding in the larger sequence) so I'm not (just) for where they would bind normally, but also where the abnormal bonds would figure in. Unfortunately my first attempt at this was unbearably slow, so I'm hoping there is a faster way. So an example with this would be: Subseq AU can bind to UA (which is normal) and UG (not so normal) and I want to know where UA, and UG are in the large RNA sequence, and the locations to show up as one...thing. I don't know if that is more helpful or not than the chicken example... Thanks again for the help On 14/06/07, Teresa Stanton [EMAIL PROTECTED] wrote: OK, I'm going to take a shot at this. If what I'm understanding is correct, a dictionary might help. But that would depend on the format of the original sequence. If you have a list: Lst1 = ['cow', 'pig', 'chicken', 'poultry', 'beef', 'pork'] Then you could: Lst1.index('chicken') And get 2, because the list starts with 0, not 1, as the first index. Or this: for i in Lst1: if i == 'chicken': print Lst1.index(i) if i == 'poultry': print Lst1.index(i) 2 3 Now, Kent or Alan and perhaps others will have a much more sophisticated way of doing this same problem. I'm still not exactly sure what it is you are looking for, because there isn't enough information for me to really get a grasp on your problem. My response is a simple list structure that has simple operations. Hope it helps :) T -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Lauren Sent: Thursday, June 14, 2007 11:35 AM To: tutor@python.org Subject: [Tutor] Finding all locations of a sequence Ok, please bear with me, I'm very new to programming and python. And my question is rather...convoluted. I have a bunch of sequences (about 4100 or so), and want to know where they are in a very, very large string of letters. But wait, there's more. Some of these sequences match to more than 'word' (for example...to be consistent with later, chicken could match to poultry or chicken). example of what I want to do (on a much smaller scale): Say I have chicken and I want to know where it occurs in a string of words, but I want it to match to both chicken and poultry and have the output of: chicken (locations of chicken and poultry in the string) or something like that. The string I'm dealing with is really large, so whatever will get through it the fastest is ideal for me. I hope this all makes sense... If it's possible to have pseudocode that would be helpful. ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor -- Lauren [EMAIL PROTECTED] ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Finding all locations of a sequence
Hi Lauren I use the find string method to search DNA motifs. Here is an example while sp len(fasta[j].sequence): pos = string.find(fasta[j].sequence, motif[i], sp) if pos != -1 and pos 0: plist.append(int(size) - pos) mlist.append(toprint) sp = pos else: sp = len(fasta[j].sequence)-1 sp+=1 pos = 0 sp = 0 You might even be able to trim a bit this code, but it is a start. HTH Paulo Lauren wrote: Ok, what I have is a RNA sequence (about 5 million nucleotides [characters] long) and have (4100) subsequences (from another sequence) and the sub-sequences are 6 characters long, that I want to find in it. The problem is the exceptional bond of U:G, which results in U bonding to A (as per normal) and G (the abnormal bond) and G to bond with C (as per normal) and U. Normally I'd go to search software already available, however what I need done isn't covered b y anything out there so far. That and I believe that they do not deal with the exceptional bond. In any event, I want to know where the subsequences can bind in the larger RNA sequence (ie, the location of binding in the larger sequence) so I'm not (just) for where they would bind normally, but also where the abnormal bonds would figure in. Unfortunately my first attempt at this was unbearably slow, so I'm hoping there is a faster way. So an example with this would be: Subseq AU can bind to UA (which is normal) and UG (not so normal) and I want to know where UA, and UG are in the large RNA sequence, and the locations to show up as one...thing. I don't know if that is more helpful or not than the chicken example... Thanks again for the help On 14/06/07, Teresa Stanton [EMAIL PROTECTED] wrote: OK, I'm going to take a shot at this. If what I'm understanding is correct, a dictionary might help. But that would depend on the format of the original sequence. If you have a list: Lst1 = ['cow', 'pig', 'chicken', 'poultry', 'beef', 'pork'] Then you could: Lst1.index('chicken') And get 2, because the list starts with 0, not 1, as the first index. Or this: for i in Lst1: if i == 'chicken': print Lst1.index(i) if i == 'poultry': print Lst1.index(i) 2 3 Now, Kent or Alan and perhaps others will have a much more sophisticated way of doing this same problem. I'm still not exactly sure what it is you are looking for, because there isn't enough information for me to really get a grasp on your problem. My response is a simple list structure that has simple operations. Hope it helps :) T -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Lauren Sent: Thursday, June 14, 2007 11:35 AM To: tutor@python.org Subject: [Tutor] Finding all locations of a sequence Ok, please bear with me, I'm very new to programming and python. And my question is rather...convoluted. I have a bunch of sequences (about 4100 or so), and want to know where they are in a very, very large string of letters. But wait, there's more. Some of these sequences match to more than 'word' (for example...to be consistent with later, chicken could match to poultry or chicken). example of what I want to do (on a much smaller scale): Say I have chicken and I want to know where it occurs in a string of words, but I want it to match to both chicken and poultry and have the output of: chicken (locations of chicken and poultry in the string) or something like that. The string I'm dealing with is really large, so whatever will get through it the fastest is ideal for me. I hope this all makes sense... If it's possible to have pseudocode that would be helpful. ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] #!/usr/bin/env python vs #!/usr/local/bin/python
From the welter of posts, coming back to the original, let's summarise: [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] how to choose between #!/usr/bin/env python and #!/usr/local/bin/python in the beginning of the script ? Use env if you want maximum flexibility across different machines. It will find where the first python in the PATH lives and use it. Use a hard path if you have multiple pythons installed and it matters which one is used. But be aware that a hard path may not work on another machine or OS version. And neither makes any difference on a non-Unix based OS. (I count cygwin as being Unix based) HTH, -- Alan Gauld Author of the Learn to Program web site http://www.freenetpages.co.uk/hp/alan.gauld ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor