hi,
I am a beginner in Python. I wish to know how can i filter a list of
strings using wild characters.ie
Lets say i have list countries =
["india","africa","atlanta","artica","nigeria"]. I need only the list
of string starting with 'a'.
thank you
Sreeraj 9 17856
On 9/6/07, Sreeraj <sr**********@gmail.comwrote:
hi,
I am a beginner in Python. I wish to know how can i filter a list of
strings using wild characters.ie
Lets say i have list countries =
["india","africa","atlanta","artica","nigeria"]. I need only the list
of string starting with 'a'.
There are a few ways of doing so. For some simple operations there are
functions on the strings, If you want some more complex "filtering"
then have a look at Python's regular expression module "re".
example:
>>l = ["india","africa","atlanta","artica","nigeria"] al = [c for c in l if c.startswith('a')] # this is a list comprehension al
['africa', 'atlanta', 'artica']
To know more about list comprehensions, have a look at: http://docs.python.org/tut/node7.htm...00000000000000
Methods on strings: http://docs.python.org/lib/string-me...string-methods
Btw, not all of names in your list are countries !
Cheers,
--
----
Amit Khemka
website: www.onyomo.com
wap-site: www.owap.in
i hope this may help you.
countries = ["india","africa","atlanta","artica","nigeria"]
filtered = filter(lambda item: item.startswith('a'), l)
i will this may help you.
countries = ["india","africa","atlanta","artica","nigeria"]
filter(lambda country: country.startswith('a'), countries)
On Sep 5, 10:00 pm, Sreeraj <sreeraj22...@gmail.comwrote:
hi,
I am a beginner in Python. I wish to know how can i filter a list of
strings using wild characters.ie
Lets say i have list countries =
["india","africa","atlanta","artica","nigeria"]. I need only the list
of string starting with 'a'.
thank you
Sreeraj
The most thorough answer would no doubt involve regular expressions,
but they can be unpleasant.
To do a "string*" type wildcard filter as in your request:
myList = ["india","africa","atlanta","artica","nigeria"]
newList = [ item for item in myList if item.startswith("a") ]
To do a "*string" wildcard filter use the endswith() function instead
of startswith() and to do a *string* type wildcard filter use
the find() function -1.
Sreeraj schrieb:
hi,
I am a beginner in Python. I wish to know how can i filter a list of
strings using wild characters.ie
Lets say i have list countries =
["india","africa","atlanta","artica","nigeria"]. I need only the list
of string starting with 'a'.
While the startswith-method others pointed out works, I wanted to direct
you attention to the module fnmatch. http://www.python.org/doc/current/li...e-fnmatch.html
It will work with real wildcards.
Diez
On Wed, 05 Sep 2007 22:54:55 -0700, TheFlyingDutchman wrote:
To do a "*string" wildcard filter use the endswith() function instead
of startswith() and to do a *string* type wildcard filter use
the find() function -1.
Maybe better the ``in`` operator for the '*string*' type. `str.find()`
will go away in the future.
Ciao,
Marc 'BlackJack' Rintsch
On Sep 6, 12:47 am, Marc 'BlackJack' Rintsch <bj_...@gmx.netwrote:
On Wed, 05 Sep 2007 22:54:55 -0700, TheFlyingDutchman wrote:
To do a "*string" wildcard filter use the endswith() function instead
of startswith() and to do a *string* type wildcard filter use
the find() function -1.
Maybe better the ``in`` operator for the '*string*' type. `str.find()`
will go away in the future.
Ciao,
Marc 'BlackJack' Rintsch
string.find serves a useful purpose in that it returns the starting
location of the string found, or -1 if not found, so if you wanted to
slice "abdecf" on"c", string.find will tell you where that is.
En Thu, 06 Sep 2007 22:19:56 -0300, TheFlyingDutchman <zz******@aol.com>
escribi�:
The Perl community has an expression "There is more than one way to do
it". As in, Perl is good because you have multiple choices (whether
it's a function/module/class/operator) of how to implement a
particular piece of logic. More choices is often good, but this can
lead to a problem in that you might be presented with more things to
learn and or you come across less common ways of doing something that
you are not familiar with in code you are trying to understand.
Does the Python community have a position regarding duplicate ways in
the language to achieve something in your code?
Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit
(Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
pyimport this
--
Gabriel Genellina
On Thu, 06 Sep 2007 16:48:31 -0700, Zentrader wrote:
On Sep 6, 12:47 am, Marc 'BlackJack' Rintsch <bj_...@gmx.netwrote:
>On Wed, 05 Sep 2007 22:54:55 -0700, TheFlyingDutchman wrote:
To do a "*string" wildcard filter use the endswith() function instead
of startswith() and to do a *string* type wildcard filter use
the find() function -1.
Maybe better the ``in`` operator for the '*string*' type. `str.find()` will go away in the future.
string.find serves a useful purpose in that it returns the starting
location of the string found, or -1 if not found, so if you wanted to
slice "abdecf" on"c", string.find will tell you where that is.
But that position is not needed here and I think::
result = [name for name in names if 'spam' in name]
reads more natural than::
result = [name for name in names if name.find('spam') -1]
Ciao,
Marc 'BlackJack' Rintsch This discussion thread is closed Replies have been disabled for this discussion. Similar topics
10 posts
views
Thread by Christof Krueger |
last post: by
|
2 posts
views
Thread by Pawe³ |
last post: by
|
2 posts
views
Thread by jackie |
last post: by
|
138 posts
views
Thread by ambika |
last post: by
|
4 posts
views
Thread by SatishPasala |
last post: by
|
5 posts
views
Thread by Dave |
last post: by
|
1 post
views
Thread by =?Utf-8?B?UGxheWE=?= |
last post: by
| |
7 posts
views
Thread by W. eWatson |
last post: by
| | | | | | | | | | |