프로그래밍/Python

[Python] 리스트(list) 활용 - for문, 다양한 메소드

슬기나무 2021. 6. 9. 22:27
반응형

이번 포스팅에서는 리스트의 다양한 활용법에 대해 알아봅시다.

 

리스트가 무엇인지는 지난 포스팅에서 알아보았으니,

 

궁금하시다면 아래를 참고하시기 바랍니다.

 

[Python] 데이터 유형: 리스트(list)

이번 포스팅에서는 데이터 유형 중 하나인 리스트(list)에 대해 알아보겠습니다.  리스트(list) 리스트는 순서를 가진 여러 값의 배열로써, 대괄호로 구분됩니다. 첫번째 줄처럼 정수형 자료를 담

study2give.tistory.com

 

 리스트의 다양한 활용법

for 루프문

for 루프에서는 리스트 또는 리스트와 같은 값 안에 있는 각각의 값에 대해

 

코드를 반복할 수 있습니다.

 

예를 들면

for i in range(0,5):
    print(i)

위의 코드를 실행했을 때 결과는 아래와 같습니다.

range(0,5)를 하게 되면 0에서 5까지 정수를 나열하는데

 

5는 포함하지 않습니다.

 

따라서 0부터 4까지가 출력되는 것이지요.

 

이와 비슷하게 range(0,5) 대신 같은 리스트를 넣어도 결과는 같습니다.

for i in [0, 1, 2, 3, 4]:
    print(i)

 

자주 활용되는 메소드

 

자주 활용되는 메소드로는

 

index(), append(), insert(), remove(), sort() 등이 있습니다.

 

insert()

먼저 index()에 대해 알아보면

 

리스트 안에 해당 값이 있으면 그 값의 인덱스를 반환하는 메소드입니다.

A = ['apple','banana','orange','peach']
print(A.index('banana'))

위 코드의 실행 결과는 아래와 같습니다.

 

append(), insert()

append()와 insert()에 대해 알아보자면

 

리스트에 값을 추가한다는 점에서는 두 메소드가 비슷하지만,

 

append()는 리스트의 마지막에만 추가할 수 있고,

 

insert()는 리스트의 어느 인덱스든 끼워넣을 수 있습니다.

 

예를 들면 이런 식이죠.

A = ['apple','banana','orange','peach']
A.append('melon')
print(A)

결과는 아래와 같습니다.

이번엔 insert() 메소드를 사용해서 melon을 orange뒤에 끼워넣어보죠.

A = ['apple','banana','orange','peach']
A.insert(3,'melon')
print(A)

실행 결과는 아래와 같습니다.

orange의 인덱스가 2이니까 3번 인덱스에 melon을 끼워넣었습니다.

 

remove()

다음은 remove() 메소드입니다.

 

이 메소드는 리스트에서 제거할 값을 입력받아 제거하는 메소드입니다.

A = ['apple','banana','orange','peach']
A.remove('banana')
print(A)

결과는 아래와 같습니다.

 

sort()

마지막으로 sort() 메소드입니다.

 

이 메소드는 숫자 혹은 문자열의 리스트를 정렬해주는 메소드입니다.

 

다만, 숫자와 문자열이 함께 들어있는 경우 정렬할 수 없습니다.

 

A = ['banana','peach','apple','orange']
A.sort()
print(A)

sort() 메소드로 정렬하기 위해 리스트의 순서를 바꿔보았는데요.

 

실행 결과는 아래와 같습니다.

숫자로 이루어진 리스트의 경우에도 예상한대로 잘 정렬해주죠.

B = [3, 1, 8, 6, 2, 4, 7]
B.sort()
print(B)

 

리스트 A와 B를 더하여 문자열과 숫자로 이루어진 리스트 C를 만들었습니다.

A = ['banana','peach','apple','orange']
B = [3, 1, 8, 6, 2, 4, 7]
C = A+B
print(C)

이 리스트를 sort()하면 위에서 설명드린대로 오류가 발생합니다.

int와 str 데이터형 간에는 크기 비교가 안된다고 말하고 있는 것 같네요.

 

마지막으로 sort()로 문자열을 정렬할 때 주의할 점이 있습니다.

 

sort()로 문자열을 정렬할 때에는 실제 알파벳 순서가 아니라

 

ASCII 코드 순서로 정렬하기 때문에,

 

알파벳 대문자가 항상 소문자 앞에 오게 됩니다.

 

예를 들면 이런 식이죠.

Test = ['a','z','A','Z']
Test.sort()
print(Test)

ASCII 코드 순서에 의해 'Z'가 'a'보다 앞에 정렬되었습니다.

 

만약 알파벳 순서로 값을 정렬해야한다면

 

메소드의 key 키워드 매개변수에 str.lower를 추가하면 됩니다.

Test = ['a','z','A','Z']
Test.sort(key=str.lower)
print(Test)

 

반응형