복붙노트

[PYTHON] x보다 큰 첫번째 파이썬리스트 인덱스?

PYTHON

x보다 큰 첫번째 파이썬리스트 인덱스?

x보다 큰 목록에서 첫 번째 색인을 찾는 가장 Python 적 방법은 무엇입니까?

예를 들어,

list = [0.5, 0.3, 0.9, 0.8]

함수

f(list, 0.7)

돌아올거야.

2.

해결법

  1. ==============================

    1.

    next(x[0] for x in enumerate(L) if x[1] > 0.7)
    
  2. ==============================

    2.목록이 정렬 된 경우 bisect_left (alist, value)는 큰 목록의 경우 다음 (xi = value 인 경우 열거 (alist)에서 i, x는 x)보다 빠릅니다.

    목록이 정렬 된 경우 bisect_left (alist, value)는 큰 목록의 경우 다음 (xi = value 인 경우 열거 (alist)에서 i, x는 x)보다 빠릅니다.

  3. ==============================

    3.

    filter(lambda x: x>.7, seq)[0]
    
  4. ==============================

    4.

    >>> alist= [0.5, 0.3, 0.9, 0.8]
    >>> [ n for n,i in enumerate(alist) if i>0.7 ][0]
    2
    
  5. ==============================

    5.

    for index, elem in enumerate(elements):
        if elem > reference:
            return index
    raise ValueError("Nothing Found")
    
  6. ==============================

    6.다른 것:

    다른 것:

    map(lambda x: x>.7, seq).index(True)
    
  7. ==============================

    7.내 목록이 너무 길 때도 ​​비슷한 문제가있었습니다. 이해력 또는 필터 기반 솔루션이 전체 목록에 포함됩니다. itertools.takewhile은 조건이 처음 false가되면 루프를 중단합니다.

    내 목록이 너무 길 때도 ​​비슷한 문제가있었습니다. 이해력 또는 필터 기반 솔루션이 전체 목록에 포함됩니다. itertools.takewhile은 조건이 처음 false가되면 루프를 중단합니다.

    from itertools import takewhile
    
    def f(l, b): return len([x for x in takewhile(lambda x: x[1] <= b, enumerate(l))])
    
    l = [0.5, 0.3, 0.9, 0.8]
    f(l, 0.7)
    
  8. ==============================

    8.

    >>> f=lambda seq, m: [ii for ii in xrange(0, len(seq)) if seq[ii] > m][0]
    >>> f([.5, .3, .9, .8], 0.7)
    2
    
  9. from https://stackoverflow.com/questions/2236906/first-python-list-index-greater-than-x by cc-by-sa and MIT license