Python

파이썬(Python) 리스트 01

eloyb 2024. 11. 30. 22:27

프로그래밍을 하기 위해서는 여러가지 데이터를 다루어야 합니다. 기본적으로 문자열 데이터, 숫자형 데이터, Boolean 데 이터등을 개별적으로 다룰 수도 있지만 여러 데이터를 체계적으로 다루기 위해서는 리스트 데이터 타입에 대해 알아두는 것이 좋습니다. 리스트 데이터 형식은 [] 을 사용하여 데이터를 보관합니다. 문자열의 값이 시작하고 끝나는 위치는 '' 를 사용하여 표시를 하고, 문자열 사이의 구분은 쉼표로 구분하게 됩니다.

>>> [1, 2, 3] [1, 2, 3] >>> ['고양이', '호랑이', '늑대', '사자', '원숭이'] ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>>

animals = ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>> animals ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>> 위의 형식으로 파이썬에서는 리스트 형식의 데이터를 표현할 있습니다. 그러면 위의 리스트 형식의 데이터를 하나씩 선 택하려면 어떻게 해야 할까요? 리스트안의 개별 항목들은 인덱스를 이용해서 접근할 수 있습니다. 첫번째 인덱스는 0 으 로 시작하고, 그 다음은 1, 2, 의 순서로 인덱스가 증가하게 됩니다.

>>> animals = ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>> animals[0] '고양이' >>> animals[2] '늑대' >>> '귀여 운 ' + animals[0] '귀여운 고양이' >>> animals[1] + ' ' + animals[2] + '보다 강합니다.' '호랑이는 늑대보다 강합니 다.' >>>

리스트 형식의 데이터에서 목록값의 범위를 초과하는 인덱스를 사용하면 IndexError 발생합니다. 그리고 인덱스는 정 수형의 데이터를 사용해야 합니다. 만약 부동소수점 형식을 사용하면 TypeError 가 발생합니다.

>>> animals = ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>> animals[10] Traceback (most recent call last): File "<pyshell#14>", line 1, in <module> animals[10] IndexError: list index out of range >>> animals[1.0] Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> animals[1.0] TypeError: list indices must be integers or slices, not float >>>

위에서 animals[10] 리스트 형식의 인덱스 범위를 벗어났기 때문에 IndexError 발생했습니다. animals[1.0] 부 동소수점을 사용했기 때문에 TypeError 가 발생했습니다.

리스트 안에 다른 리스트 값을 포함할 수도 있습니다. 이런 경우에는 여러 인덱스를 사용하여 접근할 수 있습니다.

>>> animals = [['고양이', '호랑이'], [10, 20, 30]] >>> animals[0] ['고양이', '호랑이'] >>> animals[0][1] '호랑이'

>>> animals[1][2] 30 >>>

리스트의 인덱스는 음의 정수를 이용해서 표현할 있습니다. 경우 정수값의 마지막이 -1 표시되고 이후로 -2, -3으 로 오른쪽에서 왼쪽으로 음의 정수가 증가하게 됩니다.

>>> animals = ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>> animals[-1] '원숭이' >>> animals[-5] '고양이' >>> 슬라이스를 이용하여 하위리스트를 가져올 수 있습니다. 인덱스는 리스트에서 단일 값을 얻지만 슬라이스는 리스트에서 여러개의 값을 리스트 형태로 가져올 있습니다. 슬라이스를 사용하려면 [정수:정수] 형태로 사용하면 됩니다. 슬 라이스에서의 범위는 시작숫자와 마지막숫자 -1의 범위를 가지게 됩니다.

 

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

'] >>> animals[1:3] ['호랑이', '늑대'] >>> animals[0:-1] ['고양이', '호랑이', '늑대', '사자'] >>> animals[:2] ['고양

', '호랑이'] >>> animals[1:] ['호랑이', '늑대', '사자', '원숭이'] >>> animals[:] ['고양이', '호랑이', '늑대', '사자', '원 숭이'] >>>

animals[:2] 인덱스[0] 부터 인덱스[1] 까지의 범위를 가져옵니다. animals[1:] 인덱스[1] 부터 마지막 인덱스 까지의 범위를 가져옵니다. animals[:] 모드 인덱스의 범위를 가져옵니다.

>>> animals = ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>> len(animals) 5 >>> animals[1] = '코끼리' >>> animals ['고양이', '코끼리', '늑대', '사자', '원숭이'] >>> animals[2] = animals[3] >>> animals ['고양이', '코끼리', '사자', '사자', '원숭이'] >>> ['a', 'b', 'c'] + [1, 2, 3] ['a', 'b', 'c', 1, 2, 3] >>> ['a', 'b', 'c'] * 3 ['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c'] >>>

len(animals) 리스트의 갯수를 알아내려면 len 함수를 사용합니다.

animals[1] = '코끼리' 리스트의 인덱스를 이용하여 위와 같이 리스트 내의 값을 변경할 있습니다. animals[2] = animals[3] 리스트 내에서 인덱스를 이용하여 값을 변경하는 방법입니다.

['a', 'b', 'c'] + [1, 2, 3] 리스트와 리스트를 결합하는 방법입니다.

['a', 'b', 'c'] * 3 리스트를 복제하여 크기를 늘리는 방법입니다.

>>> animals = ['고양이', '호랑이', '늑대', '사자', '원숭이'] >>> del animals[3] >>> animals ['고양이', '호랑이', '늑 대', '원숭이'] >>> del animals[2] >>> animals ['고양이', '호랑이', '원숭이'] >>>

del animals[3] 인덱스를 이용하여 리스트 값을 삭제하려면 del 명령어를 이용하여 삭제할 수 있습니다.

 

그러면 지금까지 다루어본 내용을 토대로 사용자가 주문하려고 하는 품목들을 연속적으로 입력을 하고 입력이 끝나면 주 문한 목록들을 출력해 주는 예제를 하나 만들어 보도록 하겠습니다.

orderList = [] while True: print(str(len(orderList) + 1) + '. 주문하려는 품목을 입력하세요.' + ' (입력하지 않으면 종료 됩니다.):') name = input() if name == '': break orderList = orderList + [name] print('주문한 품목들: ') for name in orderList: print(' ' + name)

위의 코드를 편집기 모드에서 입력 후 저장을 합니다. F5 키를 눌러 실행을 시킵니다.

1. 주문하려는 품목을 입력하세요. (입력하지 않으면 종료됩니다.): 메인보드 2. 주문하려는 품목을 입력하세요. (입력하 지 않으면 종료됩니다.): 메모리 3. 주문하려는 품목을 입력하세요. (입력하지 않으면 종료됩니다.): SSD 4. 주문하려는 품 목을 입력하세요. (입력하지 않으면 종료됩니다.): 하드디스크 5. 주문하려는 품목을 입력하세요. (입력하지 않으면 종료 됩니다.): CPU 6. 주문하려는 품목을 입력하세요. (입력하지 않으면 종료됩니다.): 주문한 품목들: 메인보드 메모리 SSD 하드디스크 CPU >>>

그러면 위와 같은 형태로 쉘모드에서 주문을 입력 받고 마지막에 Enter 치면 주문한 품목들의 리스트가 출력이 되게 니다.

 

 

'Python' 카테고리의 다른 글

파이썬(Python) 딕셔너리  (2) 2024.11.30
파이썬(Python) 리스트 02  (1) 2024.11.30
파이썬(Python) 스무고개 프로그램  (0) 2024.11.30
파이썬(Python) 쉬어가는 페이지  (1) 2024.11.27
파이썬 흐름제어 02  (0) 2024.11.26