본문 바로가기
Python

파이썬(Python) 리스트 02

by eloyb 2024. 11. 30.
반응형

리스트를 다루기에 앞서서 먼저 리스트를 사용할 많이 사용되는 연산자의 사용법에 대해 다루어 보도록 하겠습니 다. 연산자는 더하기 빼기 곱하기 나누기 등이 있고, 연산자를 확장해주는 대입 연산자가 있다고 언급을 했습니다.

대입 연산자                   같은 기능의 다른 표현법 animals = animals + 1 animals += 1

animals = animals - 1 animals -= 1 animals = animals * 1 animals *= 1 animals = animals / 1 animals /= 1

animals = animals % 1 animals %= 1

대입 연산자는 위와 같이 다른 표현 방법을 이용해서 똑같이 사용할 수 있습니다.

>>> animals = ['고양이'] >>> animals *= 3 >>> animals ['고양이', '고양이', '고양이'] >>> animals = ['호랑이'] >>> animals = animals * 3 >>> animals ['호랑이', '호랑이', '호랑이'] >>>

그러면 이전 페이지에 이어서 파이썬에서 리스트를 사용하는 방법에 대해 설명드리도록 하겠습니다. 파이썬에서 리스트 에 자료를 담고 그 리스트를 한번에 출력하는 방법은 for 반복문을 이용해서 출력할 수 있습니다.

>>> animals = ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>> for i in range(len(animals)): print('번호 ' + str(i) + ' 자료는: ' + animals[i]) 번호 0 자료는: 고양이 번호 1 자료는: 호랑이 번호 2 자료는: 늑대 번호 3 자료는: 사 자 번호 4의 자료는: 원숭이

대화형 쉘모드에서 위의 코드를 입력 후에 Enter 두번 칩니다. 한번만 Enter 치면 안됩니다. 그러면 전체리스트의 항 목이 출력되게 됩니다. 이런 출력 방법의 장점은 리스트에 아무리 많은 자료가 있더라 모든 인덱스를 출력할 수 있다는 것 입니다.

 

not in 연산자를 이용하여 리스트 안에 자료가 있는 없는 지를 파악할 있습니다. 표현식은 참과 거짓으로 평가 가 됩니다.

>>> '고양이' in ['고양이', '호랑이', '늑대', '사자', '원숭이'] True >>> animals = ['고양이', '호랑이', '늑대', '사자', '원 숭이'] >>> '고양이' in animals True >>> '' in animals False >>> '고양이' not in animals False >>> '' not in animals True >>>

 

그러면 not in 연산자를 이용하여 예제를 하나 만들어 보도록 하겠습니다. 예제는 사용자가 주문한 목록을 입력하면 리스트를 이용해서 주문한 내역이 있는 지 아닌지를 출력해 주는 예제입니다.

orderList = ['메인보드', '메모리', 'CPU', '하드디스크'] print('주문한 품목을 입력하세요:') i = input() if i not in orderList: print(i + '는 주문한 품목이 아닙니다.') else: print(i + '는 주문한 품목입니다.')

편집기모드에서 위와 같이 입력합니다. 저장을 다음에 F5키를 눌러 실행을 시키면 아래와 같이 쉘모드에서 출력되는 것을 확인할 수 있습니다.

주문한 품목을 입력하세요: SSD SSD 주문한 품목이 아닙니다. >>> 주문한 품목을 입력하세요: 메인보드 메인보드는 주 문한 품목입니다. >>>

리스트 값은 전달할 수 있는 index() 메서드를 가지고 있습니다. 값이 리스트에 있을 경우 그 값의 인덱스가 반환됩니다.

>>> animals = ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>> animals.index('고양이') 0 >>> animals.index('사자') 3 >>>

리스트에 새로운 값을 추가하려면 append() insert() 메서드를 사용합니다. append() 메서드는 인수를 리스트의 끝에 추가를 하고 insert() 메스드는 리스트의 모든 인덱스에 값을 추가할 수 있습니다.

>>> animals = ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>> animals.append('수달') >>> animals ['고양이', '호랑

', '늑대', '사자', '원숭이', '수달'] >>> animals.insert(2, '염소') >>> animals ['고양이', '호랑이', '염소', '늑대', '사 자', '원숭이', '수달'] >>>

리스트에서 값을 제거하려면 remove() 메서드를 사용합니다.

>>> animals = ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>> animals.remove('늑대') >>> animals.remove('원숭 이') >>> animals ['고양이', '호랑이', '사자'] >>>

sort() 메서드를 이용하여 리스트의 값을 정렬할 수 있습니다.

>>> animals = ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>> animals.sort() >>> animals ['고양이', '늑대', '사자',

'원숭이', '호랑이'] >>> number = [3, 5, 2.3, 7, 1] >>> number.sort() >>> number [1, 2.3, 3, 5, 7] >>> animals.sort(reverse=True) >>> animals ['호랑이', '원숭이', '사자', '늑대', '고양이'] >>> human = ['Micheal', 'Bob', 'cats', 'Alice', 'Joe'] >>> human.sort() >>> human ['Alice', 'Bob', 'Joe', 'Micheal', 'cats'] >>> human.sort(key=str.lower) >>> human ['Alice', 'Bob', 'cats', 'Joe', 'Micheal'] >>> animals.sort(reverse=True) 역순으로 정렬을 하려면 reverse=True 를 사용합니다.

human.sort(key=str.lower) 문자열의 경우 정렬 순서는 ASCII 순서를 사용하기 때문에 대문자 다음에 소문자가 오게 됩 니다. 이 경우 실제 알파벳 순서로 정렬을 하기 위해서는 key=str.lower 를 사용하면 됩니다.

 

튜플(Tuple) 데이터 형식

튜플 데이터 형식은 리스트 데이터 형식과 거의 비슷하지만 튜플은 [] 대신 () 를 사용하여 데이터를 보관합니다.

>>> animals = ('고양이', '호랑이', '늑대', '사자', '원숭이') >>> animals[0] '고양이' >>> animals[1:3] ('호랑이', '늑 대') >>> len(animals) 5 >>>

튜플 데이터 형식이 리스트 데이터 형식과 다른 점은 값을 수정, 추가 또는 제거를 없다는 점입니다. 아래의 에러메 시지를 확인해 보시기 바랍니다.

 

>>> animals = ('고양이', '호랑이', '늑대', '사자', '원숭이') >>> animals[1] = '수달' Traceback (most recent call last): File "<pyshell#52>", line 1, in <module> animals[1] = '수달' TypeError: 'tuple' object does not support item assignment >>>

튜플에 하나의 값만 있을 경우엔 괄호 안의 뒤에 쉼표(,) 추가해 주어야 합니다. 그렇지 않으면 파이썬에서는 튜플이 아니라 그냥 문자열로 인식되게 됩니다.

>>> type(('호랑이',)) <class 'tuple'> >>> type(('호랑이')) <class 'str'> >>>

 

'Python' 카테고리의 다른 글

파이썬 문자열 다루기  (0) 2024.12.21
파이썬(Python) 딕셔너리  (2) 2024.11.30
파이썬(Python) 리스트 01  (0) 2024.11.30
파이썬(Python) 스무고개 프로그램  (0) 2024.11.30
파이썬(Python) 쉬어가는 페이지  (1) 2024.11.27