[Chicago] List revolution

Joshua Herman zitterbewegung at gmail.com
Sat Sep 10 18:43:19 CEST 2011


Massimo you are a gentleman and a scholar!


---Profile:---
http://www.google.com/profiles/zitterbewegung





On Sat, Sep 10, 2011 at 11:29 AM, Massimo Di Pierro
<mdipierro at cs.depaul.edu> wrote:
> 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
>
>
> _______________________________________________
> Chicago mailing list
> Chicago at python.org
> http://mail.python.org/mailman/listinfo/chicago
>
>


More information about the Chicago mailing list