안녕하세요
서울 꺼벙 천사입니다

[ 혼자 공부하는 파이썬 개정판 ]을 정리하고 있습니다

이번에는
서울 꺼벙 천사가
선정된
[ 혼공학습단 8기 ] 세번째 미션을 하도록 하겠습니다
[ 혼공학습단 8기 ]는 총 6번으로 구성되어 있습니다

이번 미션은

입니다

기본 미션
리스트
리스트
리스트는
영어로는 List라는 용어를 사용하며
사전적인 의미는 [ 목록 ]이라는 의미이지만
파이썬에서는
[ 여러 가지 종류의 자료형을 한 번에 담을 수 있는 공간 ]이라고 생각을 하면 됩니다

지난번에 정리를 한 문자열은
https://velog.io/@nspro0318/Chapter-02-%EC%9E%90%EB%A3%8C%ED%98%95-%EC%9E%90%EB%A3%8C%ED%98%95%EA%B3%BC-%EB%AC%B8%EC%9E%90%EC%97%B4
하나의 변수에 문자열만 저장을 할 수 있었지만
리스트에는 Data Type과 상관이 없이
모든 Data Type을 한 번에 담을 수 있습니다
즉 하나의 리스트 안에는
문자열
정수형
실수형
불린형을 한 번에 담을 수 있다는 것입니다

남자 개그맨의 인기 순위
여자 개그맨의 인기 순위를
리스트로 표현하면 다음과 같습니다

남자개그맨의인기순위 =  [1, '유재석', 2, '조세호', 3, '이경규', 4, '신동엽']
여자개그맨의인기순위 =  [1, '송은이', 2, '김지민', 3, '신봉선', 4, '조혜련']
print(남자개그맨의인기순위)
print('남자개그맨의 Data type은 ', type(남자개그맨의인기순위), '입니다')
print(여자개그맨의인기순위)
print('여자개그맨의 Data type은 ', type(여자개그맨의인기순위), '입니다')

문자열을 만들기 위해서는
작은 따옴표로 시작해서
작은 따옴표로 마무리하거나
큰 따옴표로 시작해서
큰 따옴표로 마무리를 했지만
리스트를 만들기 위해서는
[] 안에 넣고 싶은 자료를 넣으면 되는데
넣고 싶은 자료를 구분할 때는 ,(쉼표)를 사용합니다
위의 코드를 저장하고
실행하면 다음과 같은 결과가 나옵니다

리스트를 문자열의 친구라고 소개를 한 이유는
문자열을 정리할 때 사용했던 용어들을 사용할 수 있기 때문입니다
쉼표로 구분된 것을
[ element ]라는 용어를 사용하고
[ 원소 ] 또는 [ 요소 ]라는 용어를 사용하기도 합니다
서울 꺼벙 천사는
[ 요소 ]라는 용어를 사용하도록 하겠습니다

리스트에 포함된 [ 요소 ]는 각자의 자리를 숫자로 변환하여
저장이 되는데 이것을 [인덱스 ]라고 합니다
리스트의 인덱스는 다음과 같이 표시합니다

남자개그맨의인기순위 =  [1, '유재석', 2, '조세호', 3, '이경규', 4, '신동엽']
print('남자개그맨의인기순위 첫번째 인덱스는 ', 남자개그맨의인기순위[0], '입니다')
print('남자개그맨의인기순위 두번째 인덱스는 ', 남자개그맨의인기순위[1], '입니다')
print('남자개그맨의인기순위 세번째 인덱스는 ', 남자개그맨의인기순위[2], '입니다')
print('남자개그맨의인기순위 네번째 인덱스는 ', 남자개그맨의인기순위[3], '입니다')

파이썬에서 인덱스는 1부터 시작하는 것이 아니라
0부터 시작한다는 점 잊지 마세요!!!
저장을 하고
실행을 하면
다음과 같은 결과가 나옵니다

위에서는 인덱스로 양수를 사용했지만
음수를 사용할 수도 있습니다
양수를 사용하면 왼쪽부터 0으로 시작이 되고
음수를 사용하면 오른쪽부터 -1로 시작이 됩니다

남자개그맨의인기순위 =  [1, '유재석', 2, '조세호', 3, '이경규', 4, '신동엽']
print('남자개그맨의인기순위 오른쪽 첫번째 인덱스는 ', 남자개그맨의인기순위[-1], '입니다')
print('남자개그맨의인기순위 오른쪽 두번째 인덱스는 ', 남자개그맨의인기순위[-2], '입니다')
print('남자개그맨의인기순위 오른쪽 세번째 인덱스는 ', 남자개그맨의인기순위[-3], '입니다')
print('남자개그맨의인기순위 오른쪽 네번째 인덱스는 ', 남자개그맨의인기순위[-4], '입니다')

저장하고 실행하면
다음과 같은 결과가 나옵니다

위와 같이 하나의 인덱스에 있는 요쇼를 꺼내는 것을
[ 인덱싱 ]이라고 합니다

2개 이상의 요소를 꺼내는 것을 [ 슬라이싱 ]이라고 하는데
인덱스는 0부터 시작한다는 것과
마지막 인덱스는 포함하지 않는다는 것을 잊어서는 안 됩니다

남자개그맨의인기순위 =  [1, '유재석', 2, '조세호', 3, '이경규', 4, '신동엽']
print('남자개그맨의인기순위 오른쪽 첫번째 인덱스는 ', 남자개그맨의인기순위[0:1], '입니다')
print('남자개그맨의인기순위 오른쪽 두번째 인덱스는 ', 남자개그맨의인기순위[:2], '입니다')
print('남자개그맨의인기순위 오른쪽 세번째 인덱스는 ', 남자개그맨의인기순위[:], '입니다')
print('남자개그맨의인기순위 오른쪽 네번째 인덱스는 ', 남자개그맨의인기순위[0:4], '입니다')

앞에 있는 인덱스를 생략하면 처음부터
마지막에 있는 인덱스를 생략하면 끝까지 가져오게 됩니다
위의 코드를 저장하고
실행하면
다음과 같은 결과가 나옵니다

리스트에서도 문자열에서 사용했던 연산자를 사용할 수 있습니다
+는 2개의 리스트를 하나로 연결을 하고
*는 하나의 리스트를 여러 번 반복할 때 사용합니다

별명 = ['서울 꺼벙 천사는 ', '멋진', '영원한 청년입니다']
자화자찬 = ['서울 꺼벙 천사 만만세!!!', '서울 꺼벙 천사 최고!!!']
fun = 별명 + 자화자찬
print(별명)
print(자화자찬)
print(fun)
print(fun * 5)

저장을 하고
실행을 하면
다음과 같은 결과가 나옵니다

딕셔너리
딕셔너리
딕셔너리는
[ Dictionary ]로
[ 사전 ]이라는 의미로
[ key ]라는 것과
[ value ] 라는 사용하여
자료를 저정하는 것이며
파이썬에서 딕셔너리를 사용하기 위해서는
{}안에 요소를 넣으면 되는데
[ key ]와
[ value ]를 구분하기 위해
[ : ]으로 구분을 하며
[ key ]나
[ vlaue ]에는 어떠한 Data Type이라도 올 수 있습니다
다음과 같은 것이 딕셔너리를 사용한 예입니다

거리에서 = {
    '작사' : '김창기',
    '작곡' : '깁창기',
    '노래' : '김광석',
    '설명' : '''1998년 동물원이라는 그룹에서 불리기 시작한 곡으로 발표된 지 35년이 되었지만 아직도 많은 가수들에 의해 리바이벌되는 곡 중의 하나이다.'''
}
print(거리에서)

저장을 하고
실행을 하면
다음과 같은 결과가 나옵니다

딕셔너리에 포함되어 있는 요소에 접근을 할 때는
{}가 아닌 [] 안에 요소를 적어야 에러가 발생하지 않습니다

거리에서 = {
    '작사' : '김창기',
    '작곡' : '깁창기',
    '노래' : '김광석',
    '설명' : '''1998년 동물원이라는 그룹에서 불리기 시작한 곡으로 발표된 지 35년이 되었지만 아직도 많은 가수들에 의해 리바이벌되는 곡 중의 하나이다.'''
}
print(거리에서)
print(거리에서['작사'])
print(거리에서['작곡'])
print(거리에서['노래'])
print(거리에서['설명'])

저장을 하고
실행을 하면
다음과 같은 결과가 나옵니다

사전에서 단어의 뜻을 알고자 할 때
단어를 먼저 찾는 것처럼
단어를 알면 단어와 연결된 값을 알 수 있는 것처럼
[ key ]를 통해
[ valye ]의 내용을 알고 싶을 때 사용합니다

범위자료형
범위 자료형
범위 자료형은
정수로 이루어진 범위를 만들 때 사용하는 것입니다
1부터 10까지 출력을 한다고 하면
다음과 같이 코딩을 할 수 있습니다

print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)

저장을 하고
실행을 하면
다음과 같은 결과가 나옵니다

만약에 10까지가 아니라
100까지 출력을 한다면
print를 100번이나 사용해야 할까요?
이럴 때 사용하는 것이
범위
즉 [ range ]라는 것입니다

3가지의 방법으로 사용합니다
range 다음 ()에 하나의 숫자를 넣는 것입니다

print(range(10))
print(list(range(10)))

저장을 하고
실행을 하면
다음과 같은 결과가 나옵니다

그런데
파이썬은 항상 0부터 숫자를 시작하기 때문에
0부터 표시가 됩니다
1부터 표시가 되게 하려면 다음과 같이 코딩해야 합니다

print(range(1, 10))
print(list(range(1, 10)))

저장을 하고
실행을 하면
다음과 같은 결과가 나옵니다

어!!!
필요한 것은 10까지가 필요한 데 9까지만 출력이 됩니다
파이썬은 항상 마지막 숫자는 포함하지 않습니다
그래서 항상 마지막 숫자에 +1을 해주어야 합니다

print(range(1, 11))
print(list(range(1, 11)))

저장을 하고
실행을 하면
다음과 같은 결과가 나옵니다

만약에 1부터 100까지 홀수만 출력을 하고
싶으면 어떻게 하면 될까요?

print(range(1, 101, 2))
print(list(range(1, 101, 2)))

맨 앞에 있는 숫자는 시작 숫자
두 번째 있는 숫자는 마지막 숫자 + 1
마지막 숫자는 시작 숫자에 더해지는 값을 의미합니다
저장을 하고
실행을 하면 다음과 같은 결과가 나옵니다

선택 미션

코딩

list1 = [0, 1, 2, 3, 4, 5, 6, 7]
print(list1)
list1 = [0, 1, 2, 3, 4, 5, 6, 7]
list1.extend(list1)
print(list1)
list1 = [0, 1, 2, 3, 4, 5, 6, 7]
list1.append(10)
print(list1)
list1 = [0, 1, 2, 3, 4, 5, 6, 7]
list1.insert(3,0)
print(list1)
list1 = [0, 1, 2, 3, 4, 5, 6, 7]
list1.remove(3)
print(list1)
list1 = [0, 1, 2, 3, 4, 5, 6, 7]
list1.pop(3)
print(list1)
list1 = [0, 1, 2, 3, 4, 5, 6, 7]
list1.clear()
print(list1)

결과

첫 작성 : 2022년 7월 20일 수요일

profile
프로그래밍을 독학하는 서울 꺼벙 천사입니다

0개의 댓글