Depricated String Functions in Python

A

Anoop

Hi All

Can any one help me out with the various depricated string functions
that is followed in Python.

For example how will be string.lower depricated.

As far as string.lower('PYTHON') is concerned it is depricated as
'PYTHON'.lower(). Both of them would return an output : >>> python

Thanks for your inputs

Regards

Anoop
 
S

Stefan Behnel

Anoop said:
Can any one help me out with the various depricated string functions
that is followed in Python.

For example how will be string.lower depricated.

As far as string.lower('PYTHON') is concerned it is depricated as
'PYTHON'.lower(). Both of them would return an output : >>> python

I don't quite see the question in your post, but, yes, the module level
functions of the "string" module are deprecated in favour of the methods of
the str and unicode objects.

Stefan
 
S

Steve Holden

Anoop said:
Hi All

Can any one help me out with the various depricated string functions
that is followed in Python.

For example how will be string.lower depricated.

As far as string.lower('PYTHON') is concerned it is depricated as
'PYTHON'.lower(). Both of them would return an output : >>> python

Thanks for your inputs
I wonder if this isn't just an English problem: the fact that the
functions of the string module is depracated just means that you are
encouraged to use the string objects' methods instead, as the string
module is likely to be removed at some time in the future.

regards
Steve
 
J

John Machin

I wonder if this isn't just an English problem: the fact that the
functions of the string module is depracated

"depracated"? "functions ... is"? Yup, sure looks like an English
problem to me :)

Perhaps the docs should use simpler words like "outdated" or "not
preferred" or such-like instead of "depr*e*cated".

Cheers,
John
 
S

Steve Holden

John said:
"depracated"? "functions ... is"? Yup, sure looks like an English
problem to me :)
Nobody likes a smartarse :)
Perhaps the docs should use simpler words like "outdated" or "not
preferred" or such-like instead of "depr*e*cated".
That probably wouldn't be a bad idea. Please note, however, that even if
the documentation spelled everything correctly I would doubtless
continue to mangle the spellings through typos.

regards
Steve
 
S

Sybren Stuvel

Steve Holden enlightened us with:
That probably wouldn't be a bad idea.

I don't think it'll help much. If someone can program a computer,
he/she certainly should be able to look up a word in a dictionary.

Sybren
 
A

Anoop

Thanks Stefen

let me be more specific how would i have to write the following
function in the deprecated format

map(string.lower,list)

Thanks Anoop
 
S

Simon Forman

Anoop said:
Thanks Stefen

let me be more specific how would i have to write the following
function in the deprecated format

map(string.lower,list)

Thanks Anoop

Ah. This is easy enough:

lower_list = [s.lower() for s in str_list]

Or, if you really like map() (or really don't like list comprehensions
;P ) you could use this:

lower_list = map(lambda s : s.lower(), str_list)


Hope this helps,
~Simon
 
D

Duncan Booth

Anoop said:
let me be more specific how would i have to write the following
function in the deprecated format

map(string.lower,list)

What you just wrote is the deprecated format.

There are plenty of ways to write it in an undeprecated format. The
simplest is probably:

[ s.lower() for s in list ]
 
R

riquito

Steve Holden ha scritto:
Anoop said:
Thanks Stefen

let me be more specific how would i have to write the following
function in the deprecated format

map(string.lower,list)
To avoid the deprecated usage you would use the unbound method of the
str type (that's the type of all strings):
lst = ['Steve', 'Holden']
map(str.lower, lst) ['steve', 'holden']

This isn't exactly equal to use string.lower, because this work with
just encoded strings, when string.lower works with unicode too.
I'm used to have a "lower" func like this one
def lower(x): return x.lower()
to use in map. Of course it's a problem when you need many different
methods.

A solution could be something like this.... def func(x):
.... return getattr(x,what)()
.... return func
....
map(doit('lower'),['aBcD',u'\xc0']) ['abcd', u'\xe0']
map(doit('upper'),['aBcD',u'\xc0'])
['ABCD', u'\xc0']

The best is to use in advance just unicode or encoded strings in your
program, but this is not always possible :-/

Riccardo Galli
 
D

Donn Cave

Steve Holden said:
Anoop said:
Thanks Stefen

let me be more specific how would i have to write the following
function in the deprecated format

map(string.lower,list)
To avoid the deprecated usage you would use the unbound method of the
str type (that's the type of all strings):
lst = ['Steve', 'Holden']
map(str.lower, lst)
['steve', 'holden']

Oh, excellent - the string module is dead, long live
the string module! I can replace string.join with
str.join, and never have to defile my code with that
' '.join(x) abomination.


Donn Cave, (e-mail address removed)
 
S

Sybren Stuvel

Donn Cave enlightened us with:
Oh, excellent - the string module is dead, long live the string
module! I can replace string.join with str.join, and never have to
defile my code with that ' '.join(x) abomination.

It's not an abomination. It's a very clear way of telling those two
apart:

' '.join(x)
u' '.join(x)

Sybren
 
S

Steve Holden

Donn Cave wrote:
[...]
Oh, excellent - the string module is dead, long live
the string module! I can replace string.join with
str.join, and never have to defile my code with that
' '.join(x) abomination.
>>> lst = ['Steve', 'Holden']
>>> str.join(' ', lst) 'Steve Holden'
>>>

Just so long as you don't complain about the arguments being in the
wrong order ...

regards
Steve
 
D

Duncan Booth

Sybren said:
Donn Cave enlightened us with:

It's not an abomination. It's a very clear way of telling those two
apart:

' '.join(x)
u' '.join(x)

I don't understand that comment. Are you saying that str.join vs
unicode.join isn't a clear distinction?

I like using str.join/unicode.join myself, but one advantage of using
separator.join directly is that you can save the bound method:

joinlines = '\n'.join
joinwords = ' '.join

you can't do that by calling the method on the type.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top