[Chicago] List revolution
Massimo Di Pierro
mdipierro at cs.depaul.edu
Sat Sep 10 18:29:07 CEST 2011
I have a proposal to resolve the issue
class List(list):
"""
>>> a=List()
>>> for i in range(100000): a.append(i)
>>> print a.first
0
>>> print a.second
1
>>> print a.third
2
>>> print a.twentieth
19
>>> print a.twentysecond
21
>>> print a.onehundredthirtyfifth
134
>>> print a.onethousandfivehundredandthirtyeighth
1537
"""
def __getattr__(self,name):
import re
if name.endswith('first'): name = name[:-5]+'one'
elif name.endswith('second'): name = name[:-6]+'two'
elif name.endswith('third'): name = name[:-5]+'three'
elif name.endswith('fth'): name = name[:-3]+'ve'
elif name.endswith('hth'): name = name[:-3]+'th'
elif name.endswith('ieth'): name = name[:-4]+'y'
elif name.endswith('th'): name = name[:-2]
subs = {
'one':'+1',
'two':'+2',
'three':'+3',
'four':'+4',
'five':'+5',
'six':'+6',
'seven':'+7',
'eigth':'+8',
'nine':'+9',
'ten':'+10',
'eleven':'+11',
'twelve':'+12',
'thirteen':'+13',
'fourteen':'+14',
'fiftheen':'+15',
'sixteen':'+16',
'seventeen':'+17',
'eighteen':'+18',
'nineteen':'+19',
'ten':'+10',
'twenty':'+20',
'thirty':'+30',
'fourty':'+40',
'fifthy':'+50',
'sixtith':'+60',
'seventy':'+70',
'eighty':'+80',
'ninety':'+90',
'hundred':')*100+(',
'thousand':')*1000+(',
'million':')*1000000+(',
'billion':')*1000000000+(',
'trillion':')*100000000000+(',
'and',''}
for key,value in subs.items(): name = name.replace(key,value)
if '(' in name: name='('+name+')'
name.replace('()','1')
if not re.compile('[\d\+\*\(\)]+').match(name): return AttributeError
try: return self[eval(name)-1]
except: raise AttributeError
On Sep 10, 2011, at 10:15 AM, Sal Lara wrote:
> I think it's super-overdue. I honestly can't even think of that many places in my code where I depend on the actual numerical index value of a list element. That in and of itself isn't very pythonic, right? However, were the first list element actually 1, many who answer yes to my question might feel differently.
>
> -Sal
>
> On Sat, Sep 10, 2011 at 10:03 AM, Tathagata Dasgupta <tathagatadg at gmail.com> wrote:
> What do guys think of list revolution?
>
> http://mail.python.org/pipermail/python-ideas/2011-September/011448.html
>
>
> --
> Cheers,
> T
> _______________________________________________
> Chicago mailing list
> Chicago at python.org
> http://mail.python.org/mailman/listinfo/chicago
>
> _______________________________________________
> Chicago mailing list
> Chicago at python.org
> http://mail.python.org/mailman/listinfo/chicago
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/chicago/attachments/20110910/2f171626/attachment.html>
More information about the Chicago
mailing list