[PYTHON] 목록에서 항목의 위치를 얻는 방법?
PYTHON목록에서 항목의 위치를 얻는 방법?
목록을 반복하고 특정 조건을 충족하는 경우 항목의 색인을 인쇄하고 싶습니다. 어떻게하면 좋을까요?
예:
testlist = [1,2,3,5,3,1,2,1,6]
for item in testlist:
if item == 1:
print position
해결법
-
==============================
1.흠. 여기에 목록으로 이해하는 대답이 있었지만 사라졌습니다.
흠. 여기에 목록으로 이해하는 대답이 있었지만 사라졌습니다.
이리:
[i for i,x in enumerate(testlist) if x == 1]
예:
>>> testlist [1, 2, 3, 5, 3, 1, 2, 1, 6] >>> [i for i,x in enumerate(testlist) if x == 1] [0, 5, 7]
최신 정보:
자네가 발전기 표현을 원한다면, 우리는 발전기 표현식을 가질거야. 다음은 for 반복문에있는 목록 이해법입니다.
>>> for i in [i for i,x in enumerate(testlist) if x == 1]: ... print i ... 0 5 7
이제 우리는 발전기를 만들 것입니다 ...
>>> (i for i,x in enumerate(testlist) if x == 1) <generator object at 0x6b508> >>> for i in (i for i,x in enumerate(testlist) if x == 1): ... print i ... 0 5 7
그리고 충분하게, 우리는 그것을 변수에 할당하고 거기에서 사용할 수 있습니다 ...
>>> gen = (i for i,x in enumerate(testlist) if x == 1) >>> for i in gen: print i ... 0 5 7
그리고 내가 FORTRAN을 쓰는 것을 생각했습니다.
-
==============================
2.다음은 어떨까요?
다음은 어떨까요?
print testlist.index(element)
찾으려는 요소가 실제로 목록에 있는지 여부가 확실하지 않으면 다음과 같은 예비 검사를 추가 할 수 있습니다.
if element in testlist: print testlist.index(element)
또는
print(testlist.index(element) if element in testlist else None)
또는 "pythonic way"입니다. 코드가 덜 분명하기 때문에 내가별로 좋아하지 않지만 때때로 더 효율적입니다.
try: print testlist.index(element) except ValueError: pass
-
==============================
3.열거 형을 사용하십시오.
열거 형을 사용하십시오.
testlist = [1,2,3,5,3,1,2,1,6] for position, item in enumerate(testlist): if item == 1: print position
-
==============================
4.
for i in xrange(len(testlist)): if testlist[i] == 1: print i
범위 대신 xrange를 요청하십시오 (의견 참조).
-
==============================
5.
[x for x in range(len(testlist)) if testlist[x]==1]
-
==============================
6.이렇게하는 또 다른 방법은 다음과 같습니다.
이렇게하는 또 다른 방법은 다음과 같습니다.
try: id = testlist.index('1') print testlist[id] except ValueError: print "Not Found"
-
==============================
7.목록의 크기가 충분하고 스파 스 색인의 값을 찾을 것으로 예상되는 경우 목록의 모든 값을 반복 할 필요가 없으므로이 코드가 훨씬 빠르게 실행될 수 있다고 생각하십시오.
목록의 크기가 충분하고 스파 스 색인의 값을 찾을 것으로 예상되는 경우 목록의 모든 값을 반복 할 필요가 없으므로이 코드가 훨씬 빠르게 실행될 수 있다고 생각하십시오.
lookingFor = 1 i = 0 index = 0 try: while i < len(testlist): index = testlist.index(lookingFor,i) i = index + 1 print index except ValueError: #testlist.index() cannot find lookingFor pass
값을 많이 찾으려면 목록에 "인덱스"를 추가하고 마지막에 목록을 인쇄하여 반복 당 시간을 절약해야합니다.
-
==============================
8.필자는 Tkinter 라이브러리에서 curselection () 메서드를 사용하는 것이 유용 할 것이라고 생각합니다.
필자는 Tkinter 라이브러리에서 curselection () 메서드를 사용하는 것이 유용 할 것이라고 생각합니다.
from Tkinter import * listbox.curselection()
이 방법은 Tkinter 목록 상자 위젯에서 작동하므로 목록 대신 이들 중 하나를 구성해야합니다.
이렇게하면 다음과 같은 위치가 반환됩니다.
( '0',) (Tkinter의 최신 버전은 대신에 int리스트를 반환 할 수있다)
첫 번째 위치는 항목 위치에 따라 번호가 변경됩니다.
자세한 내용은 다음 페이지를 참조하십시오. http://effbot.org/tkinterbook/listbox.htm
인사말.
-
==============================
9.왜 복잡한 것들입니까?
왜 복잡한 것들입니까?
testlist = [1,2,3,5,3,1,2,1,6] for position, item in enumerate(testlist): if item == 1: print position
-
==============================
10.
testlist = [1,2,3,5,3,1,2,1,6] for id, value in enumerate(testlist): if id == 1: print testlist[id]
나는 그것이 당신이 원하는 것과 정확히 같아요. ;-) 'id'는 항상 목록에있는 값의 색인입니다.
from https://stackoverflow.com/questions/364621/how-to-get-items-position-in-a-list by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬으로 mp3 메타 데이터에 접근하기 (0) | 2018.10.06 |
---|---|
[PYTHON] Django : 이미지 URL에서 ImageField에 이미지 추가 (0) | 2018.10.06 |
[PYTHON] 파이썬 : 문자열에서 \ xa0을 제거 하시겠습니까? (0) | 2018.10.06 |
[PYTHON] Python 실행 파일 libpython 공유 라이브러리를 찾을 수 없습니다. (0) | 2018.10.06 |
[PYTHON] 파이썬에서 HTTP PUT을 수행 할 수있는 방법이 있습니까? (0) | 2018.10.06 |