본문 바로가기
언어 공부/Python

[Python] 04. 값의 집합 리스트

by 안다니. 2021. 1. 15.
반응형

파이썬 리스트

 

  안녕하세요! 오늘은 값의 집합인 리스트에 대해 알아보도록 하겠습니다! 기본적인 자료형이나 연산자는 이전 게시물에 있기 때문에, 혹시나 개념을 까먹으신 분들은 이전 게시물을 보고 다시 읽어주시면 감사하겠습니다 :) 그럼 시작하겠습니다.

 

  먼저 다양한 숫자를 입력받아, 짝수만 골라내는 프로그램을 만든다고 가정을 했을 땐, 지금까지 본 대로면 30개의 숫자를 입력받기 위해서는 input() 함수를 30개의 값을 입력 받아야 하니 매우 복잡하다고 볼 수 있습니다. 그리고 눈으로 봤을 때, 가독성이 뛰어나지 못합니다.

 

  하지만 이때, 리스트를 사용하시면 됩니다. 리스트는 값의 집합으로, 어떤 자료형이건 상관이 없이 리스트 안에 들어갈 수 있습니다. 

 

  리스트의 형식은 기본적으로 리스트 이름 = [요소1, 요소2, 요소3 . . .] 같은 형식으로 선언하고 초기화 합니다. 

  만약 비어있는 리스트를 선언하고 싶다! 하시면 리스트 이름 = list() 라고 선언하면 됩니다.

 

예제 소스코드
oddnumber = [1, 3, 5, 7, 9]
cafes = ['star', 'bene', 'yoger', 'friends']
A = [1, 5, 'A', 'CC', 'B']
listInList = [[1, 3, 5, 6, 7], cafes, oddnumber, 1, 3, 'Abc']

print(oddnumber)
print(cafes)
print(A)
print(listInList)

 

출력 값
[1, 3, 5, 7, 9]
['star', 'bene', 'yoger', 'friends']
[1, 5, 'A', 'CC', 'B']
[[1, 3, 5, 6, 7], ['star', 'bene', 'yoger', 'friends'], [1, 3, 5, 7, 9], 1, 3, 'Abc']

  소스코드를 보시고 출력 값을 본다면 그렇게 어렵지 않은 소스코드라고 생각이 듭니다. 그리고 리스트 안에 리스트가 들어가는 것 또한 가능한데, 4번쨰 줄, listInList를 보면 [1,3,5,6,7]이라는 리스트와 리스트형 변수 cafes와 oddnumber가 포함 되어 있는 걸 볼 수 있습니다.

 

 

 


반응형

  리스트는 값의 집합이기 때문에 문자의 집합인 문자열에서 인덱싱, 슬라이싱한 것을 동일하게 사용할 수 있습니다. 먼저 인덱싱 소스 코드를 보겠습니다..

 

예제 소스코드
oddnumber = [1, 3, 5, 7, 9]
cafes = ['star', 'bene', 'yoger', 'friends']
A = [1, 5, 'A', 'CC', 'B']
listInList = [[1, 3, 5, 6, 7], cafes, oddnumber, 1, 3, 'Abc']

a = oddnumber[3]
b = cafes[1]
c = A[2]
d = listInList[0][1] #리스트 내 리스트 접근

print(a)
print(b)
print(c)
print(d)
print(a + d, oddnumber[4] * listInList[4]) #숫자 + 숫자 연산 가능
print(b + c) #문자열 + 문자열: 문자열 합하기

 

출력 값
7
bene
A
3
10 27
beneA

1.문자열 인덱싱과 마찬가지로 가장 앞에 있는 요소부터 순차적으로 인덱스를 받습니다. 

  2.리스트 안의 리스트에 접근을 하려면 가장 바깥의 리스트의 인덱스에 먼저 접근을 하고 리스트 안에 포함된 리스트 인덱스를 가져 옵니다.

  3.인덱싱한 값끼리 연산은 당연히 가능합니다.

반응형

 

예제 소스코드
oddnumber = [1, 3, 5, 7, 9]
cafes = ['star', 'bene', 'yoger', 'friends']
A = [1, 5, 'A', 'CC', 'B']
listInList = [[1, 3, 5, 6, 7], cafes, oddnumber, 1, 3, 'Abc']

a = oddnumber[1:5]
b = cafes[1:]
c = A[:2]
d = listInList[0][1:4] #리스트 내 리스트 접근

print(a)
print(b)
print(c)
print(d)

 

출력 값
[3, 5, 7, 9]
['bene', 'yoger', 'friends']
[1, 5]
[3, 5, 6]

 

  1. 문자열 슬라이싱과 마찬가지로 앞쪽 범위 값을 생략했다면, 가장 작은 인덱스 값을, 혹은 뒤쪽 범위 값을 생략했다면 가장 큰 인덱스 값을 자동으로 가져와서 슬라이싱을 합니다

 2. 리스트 안의 리스트를 슬라이싱하고 싶다면 먼저 리스트 안에 있는 리스트를 인덱싱한 다음 원하는 범위를 작성하여 슬라이싱을 합니다.

 

  긴 글 읽어주셔서 감사합니다 :)

 

내용 출처 : goormedu 바로 실행하면서 배우는 파이썬 3

반응형

댓글