※ 업무하면서 습득한 내용들을 정리해 놓은 포스팅입니다 :P 추가로 궁금하신 점은 댓글로 남겨주시고 필요한 자료 있으면 요청주세요! 잘못된 내용이 있으면 고쳐주시면 감사하겠습니다. 자료 퍼가실 때는 출처 남겨주세요!
ο 목차
※ 코드 보는 방법 참고
ㅇ 달러 기호($)가 있는 경우 -> 리눅스 터미널에서 CLI 명령어 입력
ㅇ "=#" 기호가 있는 경우 -> psql 쉘에서 명령어 입력
ㅇ 꺽쇠가 하나 있는 경우(>) -> 윈도우 명령 프롬프트(cmd)에서 명령어 입력
ㅇ 꺽쇠가 세개 있는 경우(>>>) -> python 쉘에서 명령어 입력
안녕하세요, 네모입니다.
오늘은 하나의 리스트에서 중복되는 요소들이 여러개 있을 때 모든 요소의 인덱스 값을 한번에 받을 수 있는 코드를 공유하려고 합니다.
1. 코드 개요
1) 코드 내용
- 하나의 리스트에서 중복되는 여러 요소들의 인덱스 값을 출력하는 함수
def getIndexPositions(listOfElements, element):
indexPosList = []
indexPos = 0
while True:
try:
# Search for item in list from indexPos to the end of list
indexPos = listOfElements.index(element, indexPos)
# Add the index position in list
indexPosList.append(indexPos)
indexPos += 1
except ValueError as e:
break
return indexPosList
2) 코드 설명
- getIndexPosition 함수는 listOfElements(리스트)와 element(요소) 값을 인자로 받음
- listOfElements(리스트)에 있는 모든 element(요소) 값의 인덱스를 검색해서 indexPosList(리스트)로 저장
- indexPosList*(리스트) 반환
* 모든 element(요소) 값의 인덱스를 적어놓은 리스트
2. 사용 방법
#index_test.py
# 함수 정의
def getIndexPositions(listOfElements, element):
indexPosList = []
indexPos = 0
while True:
try:
# Search for item in list from indexPos to the end of list
indexPos = listOfElements.index(element, indexPos)
# Add the index position in list
indexPosList.append(indexPos)
indexPos += 1
except ValueError as e:
break
return indexPosList
# 인자가 될 리스트
test_list = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test', 'Ok']
# 함수 적용
indexPosList = getIndexPositions(test_list, 'Ok')
# 결과 확인
print(indexPosList)
3. 실사용 예시
1) 개요
- zabbix의 history.get API 사용 결과값에서 value 값만 추출하기
2) 사용 방법 코드 예시
# value 값만 추출하기 코드
# 모듈 import
import re
# 함수 정의
def getIndexPositions(listOfElements, element):
indexPosList = []
indexPos = 0
while True:
try:
# Search for item in list from indexPos to the end of list
indexPos = listOfElements.index(element, indexPos)
# Add the index position in list
indexPosList.append(indexPos)
indexPos += 1
except ValueError as e:
break
return indexPosList
# 추출할 리스트
x = '{"jsonrpc": "2.0","result": [{"itemid": "23296","clock": "1351090996","value": "0.085",\"ns": "563157632"{"itemid": "23296","clock": "1351090936","value":"0.16","ns": "549216402"},{"itemid": "23296","clock": "1351090876","value": "0.18","ns": "537418114"},{"itemid": "23296","clock": "1351090816","value": "0.21","ns": "522659528"}}],"id": 1}'
# 파싱
y= re.split('[\|{\|"\|:\|}\|]|\,\| ',x)
# 인덱스값 추출
indexlist = getIndexPositions(y,'value')
value_list = []
# value 값 추출
for i in indexlist :
value_list.append(y[i+3])
# 결과 확인
print(value_list)
이 외에도 다양한 방식으로 활용할 수 있습니다.
유용하게 쓰시길 바랍니닷 :) 아듀
※ 좋아요와 구독은 큰 힘이 됩니다. 감사합니다.
'파이썬 개발 > 개발 기초' 카테고리의 다른 글
윈도우에서 pip 설치하기 (0) | 2022.03.31 |
---|---|
리스트의 빈 요소 제거하기(with 리스트 컴프리헨션 - list comprehension) (2) | 2022.01.13 |
리스트 공백 제거하기(\n, 스페이스, 탭) (0) | 2021.09.10 |
댓글