[엔트리파이선]<4>리스트로 여러 정보 저장하기

우리 생활 속에 사용하는 수많은 정보를 저장해봅시다. 빅데이터와 인공지능(AI) 등 첨단기술 사용이 활성화될 미래에는 정보를 잘 활용하는 능력이 경쟁력이 될 수 있습니다.

앞서 배운 변수를 이용해서 정보를 저장할 수 있습니다. 이번에는 리스트를 사용해 많은 정보를 저장하고 정리합시다. 엔트리파이선에서 리스트를 어떻게 만들고 활용할지 함께 알아봅시다.

변수를 이용해 여러 정보를 입력하고 활용할 수 있다면 사실 다른 방법은 필요하지 않을 것 같아요. 하지만 변수 하나에는 정보 1개 밖에 저장하지 못하는 한계가 있습니다.

정보 수가 많지 않을 때는 필요한 정보 수만큼 변수를 만들어 활용하면 됩니다. 그러나 정보 수가 1000개, 1만개로 늘어나고 더 많아진다면 변수를 생성하기에 물리적 한계가 있습니다. 비슷한 정보끼리 묶고 위치를 함께 표현한다면 훨씬 효율적으로 관리할 수 있지 않을까요.

[그림1] 엔트리파이선으로 리스트 만들기
<[그림1] 엔트리파이선으로 리스트 만들기>

이때 필요한 게 바로 '리스트'입니다. 리스트를 사용하면 정보 여러 개를 정보가 저장된 위치와 함께 저장, 활용할 수 있어요. [그림1]처럼 리스트도 변수와 마찬가지로 이름을 붙일 수 있고 그 안에 여러 정보를 저장할 수 있어요. 단, 리스트에 정보를 저장할 때는 텍스트인지 다른 정보인지 구별하고 입력해야 합니다.

텍스트와 다른 정보를 구별해 컴퓨터에게 명령을 내릴 때 따옴표(“”)를 이용했습니다. 리스트에서는 정보를 구별하기 위해서 쉼표(,)를 이용합니다. 리스트를 만들어서 텍스트 정보를 입력해볼게요. 리스트 이름도 변수와 마찬가지로 리스트 안 정보를 쉽게 알아보도록 이름을 정해줘야 합니다. 리스트 이름을 잘 정할수록 데이터를 효율적으로 편하게 관리할 수 있습니다.

리스트는 리스트 이름에, 변수 이름은 정보에 넣으면 됩니다. '리스트 이름=[정보1, 정보2, 정보3]'과 같이 쓸 수 있습니다.

[그림2] 실행창에 리스트 두 개 만들기
<[그림2] 실행창에 리스트 두 개 만들기>

[그림2]처럼 리스트 두 개를 만들어 봅시다. 실행창에 나타난 두 리스트를 마우스로 옮겨 적당한 위치에 놓도록 해요. 아직 리스트를 만들기만 했을 뿐 리스트 정보를 활용하거나 출력하지 않아 콘솔창에는 아무 정보가 나타나지 않습니다.

리스트가 만들어졌다면 명령어를 이용해 리스트에 정보를 추가합시다. 리스트에 정보를 추가하는 명령어는 “리스트이름.append(정보)”입니다. 리스트 이름에는 정보를 저장하길 원하는 리스트 이름을 넣고 뒤에는 저장할 정보를 넣어요.

[그림3] 리스트 명령어 입력하기
<[그림3] 리스트 명령어 입력하기>

엔트리파이선에서 명령어를 실행하기 위해서는 명령어 def_when_start():를 먼저 입력해야 합니다. [그림3]과 같이 입력하고 'name'이라는 리스트에 어떻게 정보가 저장되는지 살펴보세요.

리스트에 정보를 추가했다면 정보를 지우고 바꿔보고 출력합시다. 리스트에서 가장 중요한 것은 여러 가지 정보를 저장할 수 있다는 것과 정보 위치가 함께 저장된다는 점이에요. 리스트를 자세히 살펴보면 [그림4]와 같이 구성된 것을 볼 수 있어요.

[그림4] 리스트 구성 확인하기
<[그림4] 리스트 구성 확인하기>

“리스트이름.pop(정보위치)” 명령어를 이용해 정보를 삭제합시다. [그림5]처럼 앞서 작성된 명령어에 Entry.wait_for_sec(5)를 추가해 “엔트리파이선”이 입력되고 다음 명령어가 실행되기 전 5초 정도 쉬도록 해요. name.pop(2) 명령어로 2번 위치에 있는 명령어를 지워봅시다.

[그림5] 명령어 이용해 정보 삭제하기
<[그림5] 명령어 이용해 정보 삭제하기>

명령어를 실행시켜 어떤 변화가 있는지 봅시다. “엔트리파이선” 정보가 저장된 뒤 2번 위치에 있는 “엔트리봇”이 삭제되고 [그림6]과 같이 나머지 정보는 한 칸씩 위로 올라갑니다.

[그림6] 명령어 실행 확인하기
<[그림6] 명령어 실행 확인하기>

append 명령어가 리스트 마지막에 정보를 추가했다면 리스트 중간에 명령어를 추가하는 방법은 무엇일까요. [그림7]처럼 “리스트이름.insert(위치, 정보)” 명령어를 사용하면 그 위치에 정보를 바로 넣을 수 있습니다.

[그림7] 명령어 추가 입력하기
<[그림7] 명령어 추가 입력하기>

리스트 관련 명령어는 △리스트에 마지막 정보를 추가하는 '리스트이름.append(정보)' △리스트 특정 위치 정보를 삭제하는 '리스트이름.pop(위치)' △리스트 특정 위치에 정보를 삽입하는 '리스트이름.insert(위치, 정보)' △리스트 특정 위치 정보를 바꾸는 '리스트이름[위치]=정보' 등이 있습니다.

김슬기 안산선부초 교사

위방향 화살표