리스트를 다루기에 앞서서 먼저 리스트를 사용할 때 많이 사용되는 연산자의 사용법에 대해 좀 더 다루어 보도록 하겠습니 다. 연산자는 더하기 빼기 곱하기 나누기 등이 있고, 연산자를 확장해주는 대입 연산자가 있다고 언급을 했습니다.
대입 연산자 같은 기능의 다른 표현법 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 |