[엘리스 AI 7기 프리트랙] 03. 리스트

bee·2023년 1월 29일
0
post-thumbnail

해당 시리즈의 모든 내용은 국비지원 부트캠프 '엘리스 AI 7기' 이호준 선생님의 AI 프리트랙 강의를 수강하며 수업 내용을 정리한 것 입니다.

1. 리스트 활용

1) list.append(d)

자료 d를 리스트의 마지막 원소 뒤에 추가하는 함수로, 1개의 자료만 추가 가능하다.

>>> a = []
>>> b = ['a', 'b', 'c']
>>> a.append(10)
>>> b.append('d')

>>> print(a, b)

[10] ['a', 'b', 'c', 'd']

2) list.insert(i, d)

인덱스 i에 자료 d를 추가하는 함수로, 1개ㅡ이 자료만 추가 가능하다.

>>> c = [1, 2, 4, 5]
>>> c.insert(2, 3)

>>> print(c)

[1, 2, 3, 4, 5]

3) list.remove(d)

맨 처음 등장하는 d를 제거하는 함수로, 중복이 있을 시 인덱스가 작은 원소를 제거한다.

>>> d = [3, 1, 2, 3]
>>> d.remove(3)

>>> print(d)

[1, 2, 3]

4) list.sort()

리스트를 정렬하는 함수로, 숫자형은 오름차순, 문자열은 사전순으로 정렬한다.
(정렬함수를 사용하기 위해서는 리스트 안에 같은 자료형이 존재해야 한다.)

>>> e = [6, 2, 4, 1]
>>> f = ['carrot', 'apple', 'banana']

>>> e.sort()
>>> f.sort()

>>> print(e, f)

[1, 2, 4, 6] ['apple', 'banana', 'carrot']

[실습] 리스트 원소 추가

>>> my_list = []

>>> my_list.append(5)
>>> my_list.append(4)
>>> my_list.append(2)
>>> my_list.append(1)

>>> print(my_list)
[5, 4, 2, 1]

[실습] 리스트 원소 삽입

>>> my_list = [5, 4, 2, 1]
>>> my_list.insert(2, 3)
>>> print(my_list)
[5, 4, 3, 2, 1]

[실습] 리스트 원소 삭제

>>> my_list = [5, 2, 4, 3, 2, 1]
>>> my_list.remove(2) # 첫번재 나오는 2를 제거
>>> print(my_list) 
[5, 4, 3, 2, 1]

[실습] 리스트 원소 정렬

>>> my_list = [5, 4, 3, 2]
>>> my_list.sort()
>>> print(my_list)
[2, 3, 4, 5]

2. 시퀀스 자료형

순서가 있는 자료형으로, 리스트, 문자열 등이 여기에 속한다.

a = "Once" # 문자열
b = ['T', 'W', 'I', 'C', 'E'] # 리스트
c = (1, 2, 3, 4, 5)# 튜플

시퀀스의 특징

1) 원소간의 순서가 존재

인덱싱과 슬라이싱이 가능하다.

>>> a = "once"
>>> b = ['t', 'w', 'i', 'c', 'e']

>>> print(a[1])
n

>>> print(b[2:4])
['i', 'c']

인덱싱과 슬라이싱을 할 때 '음수'를 넣거나, 자리를 비우는 것도 가능하다.

>>> a = "once"
>>> b = ['t', 'w', 'i', 'c', 'e']

>>> print(a[-1]) # 뒤에서 1번째 원소 출력
e

>>> print(b[:3]) # 맨 첫번째 원소부터 3번째 원소까지 슬라이싱
['t', 'w', 'i']

2) 멤버(원소) 조회

in 연산자로 시퀀스 안에 원소가 있는지 확인이 가능하다.

>>> a = "once"
>>> b = ['t', 'w', 'i', 'c', 'e']

>>> print('o' in a)
True

>>> print('b' in b)
False

3) 길이 확인

len 연산자로 시퀀스 안에 원소가 몇 개 인지 확인이 가능하다.

>>> a = "once"
>>> b = ['t', 'w', 'i', 'c', 'e']

>>> print(len(a))
4

>>> print(len(b))
5

4) 연결연산

+ 연산자로 같은 시퀀스 두 개를 이어 붙일 수 있다.

>>> c = ['t', 'w', 'i'] + ['c', 'e']
>>> print(c)

['t', 'w', 'i', 'c', 'e']

5) 반복연산

* 연산자로 시퀀스를 반복할 수 있다.

>>> d = "shy" * 3
>>> print(d)
shyshyshy

[실습] 시퀀스의 인덱싱/슬라이싱

>>> my_str = "Impossible"
>>> my_list = ["Apple", "Banana", "Chamwae", "Durian"]
>>> var1 = my_list[2]
>>> var2 = my_str[2:]
>>> print(var1)
p
>>> print(var2)
['Chamwae', 'Durian']

[실습] 시퀀스의 길이/멤버 조사

>>> my_str = "Impossible"
>>> my_list = ["Apple", "Banana", "Chamwae", "Durian"]
>>> var1 = len(my_str)
>>> var2 = "Egg" in my_list
>>> print(var1)
10
>>> print(var2)
False

[실습] 시퀀스의 연결/반복

>>> str1 = "Py"
>>> str2 = "thon"
>>> my_list = [3, 6, 9]
>>> var1 = str1 + str2
>>> var2 = my_list * 3
>>> print(var1)
Python
>>> print(var2)
[3, 6, 9, 3, 6, 9, 3, 6, 9]

[실습] 칙칙폭폭 기차놀이

>>> train = ['Seongjin', 'Chankyung', 'Junyong']

>>> train.append('Jongwhan')
>>> print('서울역 도착. // ', train)
서울역 도착. // ['Seongjin', 'Chankyung', 'Junyong', 'Jongwhan']

>>> train.insert(0,'Dongbin')
>>> print('대전역 도착. //', train)
대전역 도착. // ['Dongbin', 'Seongjin', 'Chankyung', 'Junyong', 'Jongwhan']

>>> train.remove('Seongjin')
>>> print('동대구역 도착. // ', train)
동대구역 도착. // ['Dongbin', 'Chankyung', 'Junyong', 'Jongwhan']

>>> train.sort()
>>> print('부산역 도착. // ', train)
>>> print('오늘도 빠르고 편안한 기차를 이용해주셔서 감사합니다.')
부산역 도착. // ['Chankyung', 'Dongbin', 'Jongwhan', 'Junyong']
오늘도 빠르고 편안한 기차를 이용해주셔서 감사합니다.

[실습] 보석 훔치기

#dahyun의 가방 안에서 '다이아몬드'를 훔쳐보자
>>> dahyun = ['은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '다이아몬드', '은']
>>> stealBag1 = dahyun[-2]

#tzuyu의 가방 안에서 금 13개를 훔쳐보자
>>> tzuyu = ['은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '은', '금', '금', '금', '금', '금', '금', '금', '금', '금', '금', '금', '금', '금' ]
>>> stealBag2 = tzuyu[-13:]

>>> print('dahyun로부터 훔쳐온 보석은', stealBag1)
dahyun로부터 훔쳐온 보석은 ['다이아몬드']
>>> print('tzuyu로부터 훔쳐온 보석은', stealBag2)
tzuyu로부터 훔쳐온 보석은 ['금', '금', '금', '금', '금', '금', '금', '금', '금', '금', '금', '금', '금' ]

[실습] 아이돌 탐구

>>> twice = ["모모", "쯔위", "사나", "지효", "미나", "다현", "나연", "정연", "채영"]
>>> blackpink = ["지수", "제니", "리사", "로제"]

>>> twice_member = len(twice)
>>> print(twice_member)
9
>>> blackpink_member = len(blackpink)
>>> print(blackpink_member)
4

>>> isMomoBlackpink = "모모" in blackpink
>>> print(isMomoBlackpink)
False
>>> isTzuyuTwice = "쯔위" in twice
>>> print(isTzuyuTwice)
True
>>> isJisooBlackpink = "지수" in blackpink
>>> print(isJisooBlackpink)
True

[실습] 수능 금지곡

>>> a = ['ring']
>>> b = ['ding']
>>> c = ['dong']
>>> d = ['diggi']

# 연결 연산자를 이용해서 ['ring', 'ding', 'dong']를 lyric에 대입해봅시다.
>>> lyric = a + b + c
>>> print(lyric)
['ring', 'ding', 'dong']

# 변수 shinee에 ['ring', 'ding', 'dong', 'ring', 'ding', 'dong']를 담아봅시다.
>>> shinee1 = lyric * 2
>>> print(shinee1)
['ring', 'ding', 'dong', 'ring', 'ding', 'dong']

# ['ring','diggi','ding','diggi','ding','ding','ding']
>>> shinee2 = a + d + b + d + b*3
>>> print(shinee1,shinee2)
['ring','diggi','ding','diggi','ding','ding','ding']
profile
벌집처럼 밀도있게 차곡차곡 쌓아나가는중

0개의 댓글