Arrays/List, filters, Pytho, Ruby

Dan Stromberg drsalists at gmail.com
Fri Feb 11 16:51:31 EST 2011


On Fri, Feb 11, 2011 at 1:43 PM, André Roberge <andre.roberge at gmail.com> wrote:
> On Friday, February 11, 2011 5:24:15 PM UTC-4, LL.Snark wrote:
>> Hi,
>>
>> I'm looking for a pythonic way to translate this short Ruby code :
>> t=[6,7,8,6,7,9,8,4,3,6,7]
>> i=t.index {|x| x<t.first}
>>
>> If you don't know Ruby, the second line means :
>> What is the index, in array t, of the first element x such that x<t[0].
>>
>> If can write it in python several ways :
>> t=[6,7,8,6,7,9,8,4,3,6,7]
>> i=0
>> while t[i]>=t[0] : i+=1
>>
>> ... not pythonic I think...
>>
>> Or :
>> t=[6,7,8,6,7,9,8,4,3,6,7]
>> i=[j for j in range(len(t)) if t[j]<t[0]][0]
>>
>> ...too cryptic...
>>
> You could go with something like (untested)
> t = [6,7,8,6,7,9,8,4,3,6,7]
> for i, j in enumerate(t):
>    if j < t[0]:
>        break
> else:
>        i = 0
>
> ;-)
>
>
>
>> I'm using Python 3.
>>
>> Thx

>>> t = [6,7,8,6,7,9,8,4,3,6,7]
>>> generator = (element for element in t[1:] if element >= t[0])
>>> print(next(generator))



More information about the Python-list mailing list