리스트에서 원소 찾아내기

IngCoding·2022년 8월 3일
2

문제출처 : 프로그래머스

리스트에서 원소 찾아내기

리스트 L 안에 원소 x 가 발견되는 모든 인덱스를 출력하는 함수를 완성하세요.
만약 찾는 원소가 없으면 리스트 [-1]을 반환합니다.

# input
L = [64, 72, 83, 72, 54]
x = 72

# output
[1,3]

My Code

def solution(L, x):
    answer = []
    if x in L: 
        for i in range(len(L)):
            if x == L[i]:
                answer.append(i)
    else:
        answer.append(-1)
    return answer
solution(L, x)
[1, 3]

Better code

def solution(L, x):
    if x in L: # list comprehension + enumerate
        return [i for i, y in enumerate(L) if y == x]
    else:
        return [-1]
solution(L, x)
[1, 3]
# list comprehension 은 아래 코드를 압축한 것과 같다.
lst = [i for i in enumerate(L)]
lst
[(0, 64), (1, 72), (2, 83), (3, 72), (4, 54)]
lst = []
for i in enumerate(L):
    lst.append(i)
lst
[(0, 64), (1, 72), (2, 83), (3, 72), (4, 54)]
# enumerate 
for i, y in enumerate(L):
    print(i, y)
0 64
1 72
2 83
3 72
4 54
profile
Data & PM

0개의 댓글