
6. 리스트
【배우기】
엔트리로 해보자
파이선으로 해보자
리스트는 변수를 확장한 개념이다. 변수에는 기본적으로 한 번에 하나의 자료만 저장할 수 있지만 리스트는 여러 개의 자료를 한꺼번에 저장할 수 있다.

1엔트리로 해보자

① [속성] 탭의 리스트 추가하기로 [먹고 싶은 간식] 리스트 추가하기
② 리스트 항목에 떡볶이, 순대 추가하기

[예제코드]
① [시작] 꾸러미 - [시작하기 버튼을 클릭했을 때] 블록
② [자료] 꾸러미 - [O 항목을 먹고 싶은 간식에 추가하기] 블록 2개 연결하기
③ [O 항목을 먹고 싶은 간식에 추가하기]의 O에 만두 입력하기
④ [O 항목을 먹고 싶은 간식에 추가하기] 의 O에 핫도그 입력하기


[예제코드]
① [자료] 꾸러미 - [O을(를) 먹고 싶은 간식의 O번째에 넣기] 블록
② [O을(를) 먹고 싶은 간식의 O번째에 넣기] 블록의 O에 라면, 1 입력하기


[예제코드]
① [자료] 꾸러미 - [먹고 싶은 간식 O번째 항목을 O(으)로 바꾸기] 블록
② [먹고 싶은 간식 O번째 항목을 O(으)로 바꾸기]블록의 O에 2, 라볶이 입력하기


[예제코드]
① [자료] 꾸러미 - [먹고 싶은 간식 O번째 항목을 O(으)로 바꾸기] 블록
② [먹고 싶은 간식 O번째 항목을 O(으)로 바꾸기]블록의 O에 2, 라볶이 입력하기





2파이선으로 해보자
리스트는 대괄호([ ]) 안에 값들을 선언하면 된다. 리스트를 생성한 다양한 예다. cc와 같이 다양한 형식을 섞어서 리스트를 만들 수도 있다.
aa=[1,2,3,4,5]
bb=[‘도윤’,‘서하’]
cc=[10,20.3,‘abc’]
print(aa,bb,cc)
![이미지. 6_1.py의 순서도. 시작, aa=[1,2,3,4,5], bb=['도윤', '서하']), cc=[10, 20.3, 'abc'], print(aa, bb, cc), 종료](./images/3_6/6_i1.jpg)
> 6_1.py
[1, 2, 3, 4, 5] [‘도윤’, ‘서하’] [10, 20.3, ‘abc’]
리스트는 정수, 문자열, 실수 등 서로 다른 데이터 형식을 하나로 묶을 수 있다. 리스트 aa에는 정수 [1, 2, 3, 4, 5]가, 리스트 bb에는 문자열 [‘도윤’, ’서하’]가, 리스트 cc에는 정수, 실수, 문자열이 혼합된 [10,20.3, ’abc’]가 대입되어 있다. 다음은 ‘리스트 이름.append(값)’ 함수와 ‘리스트 이름.insert(위치, 값)’함수를 사용해서 리스트에 값을 추가하는 예제 코드다
aa=[1, 2, 3, 4, 5]
bb=[1, 2, 3, 4, 5]
aa.append(6)
bb.insert(2, 10)
print(aa)
print(bb)
![이미지. 6_2.py의 순서도. 시작, aa=[1,2,3,4,5], bb=[1,2,3,4,5], aa.append(6), bb.insert(2, 10), print(aa), print(bb), 종료](./images/3_6/6_i2.jpg)
> 6_2.py
[1, 2, 3, 4, 5, 6]
[1, 2, 10, 3, 4, 5]
리스트 aa와 리스트 bb는 모두 [1, 2, 3, 4, 5]로 생성되어 있다. ‘aa.append(6)’를 사용하면 리스트 aa의 값이 [1, 2, 3, 4, 5, 6]로 추가된 것을 확인할 수 있다. 이와 같이 ‘리스트 이름.append(값)’ 함수는 리스트 제일 뒤에 항목을 추가하는 함수다. bb.insert(2, 10)를 사용하면 리스트 bb의 값이 [1, 21, 0, 3, 4, 5]로 지정한 리스트 bb[2] 값에 10이 추가된 것을 확인할 수 있다. 이와 같이 ‘리스트 이름.insert(위치, 값)’ 함수는 지정한 위치에 값을 추가하는 함수라는 것을 확인할 수 있다
리스트의 항목에 접근하려면 ‘리스트 이름[위치]’를 사용한다. 다음은 ‘리스트 이름[위치]를 사용해서 리스트의 항목에 접근하는 예제 코드다.
aa=[1, 2, 3, 4, 5]
print(aa[0])
print(aa[0]+aa[2])
![이미지. 6_3.py의 순서도. 시작, aa=[1,2,3,4,5], print(aa[0]), print(aa[0]+aa[2]), 종료](./images/3_6/6_i3.jpg)
> 6_3.py
1
4
‘리스트 이름[위치]’는 리스트의 해당 위치에 있는 값에 접근하는 함수다. print(aa[0]) 명령은 aa[0] 번째 값인 1이 출력되며, print(aa[0]+aa[2]) 명령은 리스트의 aa[0] 값과 aa[2]의 값인 1과 3의 합인 4가 출력된다.
리스트에 접근할 때 콜론(:)을 사용해서 범위를 지정할 수 있다. ‘리스트 이름[시작:끝+1]’로 지정하면 리스트의 모든 값이 나온다. 콜론 뒤에 오는 수에 해당하는 리스트 값은 포함되지 않는 점에 주의해야한다.
aa=[1, 2, 3, 4, 5]
print(aa[0:5])
![이미지. 6_4.py의 순서도. 시작, aa=[1,2,3,4,5], print(aa[0:5]), 종료](./images/3_6/6_i4.jpg)
> 6_4.py
[1, 2, 3, 4, 5]
리스트 aa가 [1, 2, 3, 4, 5]로 생성되어 있으므로 ‘print(aa[0:5])’는 리스트 aa[0]의 값부터 aa[4]의 값까지이므로 리스트 aa 전체가 출력된다.
리스트 값을 변경하는 방법은 다양하다. 다음은 다양한 방법으로 리스트의 값을 변경하는 예제 코드다.
aa=[1 ,2, 3, 4, 5]
aa[1]=3
aa[2:4]=[2, 3]
del (aa[0])
print(aa)
![이미지. 6_5.py의 순서도. 시작, aa=[1,2,3,4,5], aa[1]=3, aa[2:4]=[2,3], del (aa[0]), print([aa]), 종료](./images/3_6/6_i5.jpg)
> 6_5.py
[3, 2, 3, 5]
리스트 aa가 [1, 2, 3, 4, 5]로 생성되어 있다. aa[1]=3을 실행하면 aa[1]의 값 2가 3으로 변경되어 [1,3, 3, 4, 5]가 된다. 다음 행의 aa[2:4]=[2, 3]으로 aa[2]번째 값부터 aa[3]값까지가 2, 3으로 변경되어 [1, 3, 2, 3, 5]가 된다. 다음 행의 del(aa[0]) 함수로 aa[0]의 값인 1이 삭제되어 list aa는 [3, 2, 3, 5]가 된다.
aa=[1, 2, 3, 4, 5]
aa[1:5]=[3, 5, 7, 9]
print(aa)
bb=[1, 2, 3, 4, 5]
bb[3]=5
del (bb[1])
print(bb)
1) [‘불고기’, ‘김치’, ‘비빔밥’, ‘초밥’]이라는 리스트를 만든 후 [‘불고기’, ‘김치’, ‘비빔밥’]라는 리스트로 바꿀 수 있도록 코딩해 보자.
2) [1, 3, 5, 4, 2]라는 리스트를 [1, 2, 3, 4, 5] 리스트로 바꿀 수 있도록 코딩해 보자.
3) [‘사랑해’, ‘너를’, ‘내가’, ‘많이’]라는 리스트를 내가 너를 많이 사랑해라는 문자열로 만들어 출력해 보자.