<br><br><div class="gmail_quote">On Fri, Feb 11, 2011 at 1:51 PM, Dan Stromberg <span dir="ltr"><<a href="mailto:drsalists@gmail.com">drsalists@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div></div><div class="h5">On Fri, Feb 11, 2011 at 1:43 PM, André Roberge <<a href="mailto:andre.roberge@gmail.com">andre.roberge@gmail.com</a>> wrote:<br>
> On Friday, February 11, 2011 5:24:15 PM UTC-4, LL.Snark wrote:<br>
>> Hi,<br>
>><br>
>> I'm looking for a pythonic way to translate this short Ruby code :<br>
>> t=[6,7,8,6,7,9,8,4,3,6,7]<br>
>> i=t.index {|x| x<t.first}<br>
>><br>
>> If you don't know Ruby, the second line means :<br>
>> What is the index, in array t, of the first element x such that x<t[0].<br>
>><br>
>> If can write it in python several ways :<br>
>> t=[6,7,8,6,7,9,8,4,3,6,7]<br>
>> i=0<br>
>> while t[i]>=t[0] : i+=1<br>
>><br>
>> ... not pythonic I think...<br>
>><br>
>> Or :<br>
>> t=[6,7,8,6,7,9,8,4,3,6,7]<br>
>> i=[j for j in range(len(t)) if t[j]<t[0]][0]<br>
>><br>
>> ...too cryptic...<br>
>><br>
> You could go with something like (untested)<br>
> t = [6,7,8,6,7,9,8,4,3,6,7]<br>
> for i, j in enumerate(t):<br>
>    if j < t[0]:<br>
>        break<br>
> else:<br>
>        i = 0<br>
><br>
> ;-)<br>
><br>
><br>
><br>
>> I'm using Python 3.<br>
>><br>
>> Thx<br>
<br>
>>> t = [6,7,8,6,7,9,8,4,3,6,7]<br>
</div></div>>>> generator = (element for element in t[1:] if element >= t[0])<br>
>>> print(next(generator))<br>
<div><div></div><div class="h5">--<br>
<a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">http://mail.python.org/mailman/listinfo/python-list</a><br>
</div></div></blockquote></div><br>Since we only care about the 1st generated value ...<br><br>t = [6,7,8,6,7,9,8,4,3,6,7]<br>t.index(next((elem for elem in t[1:] if elem < t[0])))<br>