본문으로 바로가기

[Python] List 자료형

category Programming/Python 2018.03.20 23:06

리스트 자료형이란 자료를 리스트로 보관하는 자료형 타입을 말합니다. 는 뭔소리지?ㅋㅋㅋㅋㅋ;;


C언어 에서는 배열과 같은 개념입니다.


예를 들어 사과, 바나나, 배 자료를 보관하려면


a = 사과

b = 바나나

c = 배


처럼 각각 변수를 생성해서 보관을 해줘야 합니다. (3개의 변수가 생성됨)


# 사과, 바나나, 배 // 3가지 자료가 있습니다.

a = "사과"
b = "바나나"
c = "배"


하지만 해당 자료를 변수 하나에 보관을 할 수 있습니다.


이게 가능하도록 해주는 것이 바로 List(리스트) 자료형 입니다.


list_a = [사과, 바나나, 배]


위처럼 list_a 라는 리스트 변수에 3가지의 자료를 모두 담을 수 있습니다.


list_a = ["사과", "바나나", "배"]


그렇다면 어떻게 사용 할 수 있을까요!?


자료가 담겨있는 순서를 알면 사용 할 수 있습니다!


대신! 여기서 주의할 점은 순서의 시작 번호 인데요


시작번호는 0번 부터 시작하도록 되어 있습니다.


즉, 사과는 1번이 아닌 0번, 바나나는 1번, 배는 2번 입니다.


print("0번째 담겨있는 자료는? ", list_a[0])
print("1번째 담겨있는 자료는? ", list_a[1])
print("2번째 담겨있는 자료는? ", list_a[2])



이 번호는 Index 라는 명칭을 사용하고 있습니다.


Index의 최대 번호는 (리스트의 크기 - 1) 입니다.


print("list_a 의 크기는?", len(list_a))
print("list_a 의 Index 마지막은?", len(list_a)-1)



그리고 중요한 점을 한 가지 더 언급하자면


C언어의 배열에서는 배열자체에 자료형 타입을 선언 하도록 되어 있습니다.


int array[3] = {0, 0, 0};


이런 식으로 선언이 되게 되면 이 배열에는 정수타입의 자료형만 보관 할 수 있게 됩니다.



But!!!!!


파이썬의 리스트는 이런 제한이 없습니다.


이기 뭔말이고..?


문자열이든, 정수든, 실수든... 한 리스트에 보관이 모두 된다는 이야기 입니다!! 심지어 리스트를 리스트에 보관도 가능합니다!


와우.. 정말???? 확인을 바로 해보죠!


list_temp = [0, 1]
list_a = ["abc", 100, 0.4, list_temp]

print(list_a, "\n")

for n in range(len(list_a)):
print(type(list_a[n]))
print("list_a[{0}] = {1}".format(n, list_a[n]))
print("\n")


list_a[0] 에는 "abc" 문자열을 포함하고 있습니다. 데이터 타입을 확인해보면 class 'str' 문자열 임을 알 수 있습니다.


list_a[1] 에는 100 정수를 포함하고 있습니다. 데이터 타입을 확인해보면 class 'int' 정수 임을 알 수 있습니다.


list_b[2] 에는 0.4 실수를 포함하고 있습니다. 데이터 타입을 확인해보면 class 'float' 실수 임을 알 수 있습니다.


list_c[3] 에는 list_temp 리스트를 포함하고 있습니다. 데이터 타입을 확인해보면 class 'list' 리스트 임을 알 수 있습니다.



이처럼 파이썬의 리스트는 기존에 알던 배열과는 조금 다른 개념입니다.


어떻게 보면 구조체 같은 느낌도 드네요!


구조체를 조금 더 편하게 사용 할 수 있도록 해준다는 느낌이라고 할까요..ㅎㅎ



아무튼 파이썬 재미있는 녀석입니다!


댓글을 달아 주세요