본문 바로가기
[R&D] 프로그래밍/Python

[Python] 리스트(list) method - copy, count, index

by Geuni 2022. 7. 3. 10:49
728x90
반응형

1. 복사 (copy)

copy()를 이용해 깊은 복사(deep copy)를 할 수 있습니다.

깊은 복사는 다른 객체를 생성하여 내부 요소를 모두 새롭게 복사하는 것을 뜻합니다.

서로 다른 포인터를 참조하기 때문에 간섭 받지 않습니다.

반대 되는 말로는 얕은 복사(shallow copy)가 있는데 이는 다른 포스팅에서 다루겠습니다.

a = [3, 55, 12, 67, 1, 88, 152, 60]
b = a.copy()

print('a : {} / b : {}'.format(id(a), id(b))) # 다른 포인터 참조
print(a) # [60, 152, 88, 1, 67, 12, 55, 3]
print(b) # ['test2', 'test1', 'test long long', 'test long']

2. 요소의 수 확인 (count)

count(n)는 리스트 요소중 n의 갯수를 확인 할 수 있습니다.

문자열의 경우 문자 전체가 일치해야만 count 됩니다.

a = [3, 55, 12, 55, 1, 55, 55, 60]
b = ['test long', 'test long long', 'test1', 'test2']

aCnt = a.count(55)
bCnt1 = b.count('test long')
bCnt2 = b.count('test')

print(aCnt, bCnt1, bCnt2) # 4 1 0

3. 특정 요소의 인덱스 확인 (index)

index(n)은 리스트에서 n이 몇번째에 있는지 확인 합니다.

다만 여러개가 포함되어 있다면 첫번째 있는 요소의 인덱스를 반환합니다.

 

특정 위치에서 찾고싶다면 index(n, start, end)의 형태로 start에는 시작할 인덱스, end에는 끝낼 인덱스를 넣어 확인하면 됩니다.

(만약 n 값을 찾지 못했다면 ValueError가 발생합니다.)

a = [3, 55, 12, 55, 1, 55, 55, 60]
b = ['test long', 'test long long', 'test1', 'test2']

aIdx1 = a.index(55) # 0번째 부터 끝(7)까지
aIdx2 = a.index(55, 4, 7) # 4번째 부터 7까지
bIdx1 = b.index('test long')
bIdx2 = b.index('test1')

print(aIdx1, aIdx2, bIdx1, bIdx2) # 1 5 0 2
728x90
반응형

댓글