파이썬 데이터 구조

이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 사이트와, 다음 두 채널도 오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
●  잔재미코딩 뉴스레터 오픈 [구독해보기]
●  잔재미코딩 유투브 오픈 [구독해보기]

기존 유투브 영상은 설명없이 키보드로 코드를 작성하는 모습만 보여드려서 보기가 불편하여, 정답 코드로 대체합니다.
본 컨텐츠는 저작권법의 보호를 받으며, 무단 복제, 가공, 외부 오픈이 확인될 경우, 법적 책임을 물을 수 있습니다,

Exercise 49. 데이터 구조 (튜플)

  • a, b, c, d, e를 저장하는 튜플을 만들고 첫 번째 튜플값과 마지막 번째 튜플값을 출력하세요.
In [6]:
tuple_data = ("a", "b", "c", "d", "e")
print (tuple_data[0], tuple_data[4])
a e

Exercise 50. 데이터 구조 (튜플)

  • 다음 코드를 작성해서 실행해보고 에러가 나는 이유를 설명하세요.

    • 실행코드
      tupledata = ('dave', 'fun-coding', 'endless')
      tupledata[0] = 'david'
      
    • 에러

      TypeError                                 Traceback (most recent call last)
      <ipython-input-2-db4a259aad24> in <module>()
            1 tupledata = ('dave', 'fun-coding', 'endless')
      ----> 2 tupledata[0] = 'david'
      
      TypeError: 'tuple' object does not support item assignment
      
In [7]:
# Tuple data cannot be changed!
# tupledata = ('dave', 'fun-coding', 'endless')
# tupledata[0] = 'david'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-7-db4a259aad24> in <module>()
      1 tupledata = ('dave', 'fun-coding', 'endless')
----> 2 tupledata[0] = 'david'

TypeError: 'tuple' object does not support item assignment

Exercise 51. 데이터 구조 (튜플)

  • 다음 코드를 읽고, 최종적으로 var1과 var2의 값이 어떤 값이될지 확인해보고, 왜 이렇게 동작하는지 튜플을 기반으로 설명하세요.
    • 실행코드
      var1, var2 = 1, 2
      var1, var2 = var2, var1
      
본 자료 보다 업데이트된 자료와 함께 온라인 강의로 익히면 체계적으로 이해할 수 있습니다!
퀄러티가 다른 온라인 강의로 차근차근 익혀보세요
In [17]:
# Tuple = Tuple data
var1, var2, var3, var4 = 1, 2, 3, 4
var1, var2, var3, var4 = var4, var3, var2, var1
print (var1, var2, var3, var4)
4 3 2 1

Exercise 52. 데이터 구조 (튜플)

  • 다음 코드에서 두번째 데이터부터 마지막 데이터를 다음과 같이 출력하세요
tupledata = ('fun-coding1', 'fun-coding2', 'fun-coding3', 'fun-coding4', 'fun-coding5')

출력:
('fun-coding2', 'fun-coding3', 'fun-coding4', 'fun-coding5')

In [21]:
tupledata = ('fun-coding1', 'fun-coding2', 'fun-coding3', 'fun-coding4', 'fun-coding5')
tupledata[1:]
Out[21]:
('fun-coding2', 'fun-coding3', 'fun-coding4', 'fun-coding5')

Exercise 53. 데이터 구조 (튜플과 리스트)

  • 다음 튜플 데이터를 리스트 데이터로 변환한 후에 'fun-coding4' 데이터를 마지막에 추가하고, 다시 튜플 데이터로 변환하세요.
    tupledata = ('fun-coding1', 'fun-coding2', 'fun-coding3')
    
In [28]:
tupledata = ('fun-coding1', 'fun-coding2', 'fun-coding3')
# print (type(tupledata))
listdata = list(tupledata)
# print (type(listdata))
listdata.append('fun-coding4')
# print (listdata)
tupledata = tuple(listdata)
print (tupledata)
('fun-coding1', 'fun-coding2', 'fun-coding3', 'fun-coding4')
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다

Exercise 54. 데이터 구조 (튜플, 리스트, 딕셔너리)

  • 비어 있는 튜플, 리스트, 딕셔너리 변수를 하나씩 각각 만드세요.
In [29]:
tupledata = tuple()
listdata = list()
dictdata = dict()

print (type(tupledata), type(listdata), type(dictdata))
<class 'tuple'> <class 'list'> <class 'dict'>

Exercise 55. 데이터 구조 (딕셔너리)

  • 다음 영어 사전 데이터를 딕셔너리 변수로 만들고, 딕셔너리 변수의 key 값인 영어단어, value 값인 의미 만을 가진 리스트 변수를 각각 만들고, 두 리스트 변수를 출력하세요.
영어단어 의미
environment 환경
company 회사
government 정부, 정치
face 얼굴
  • 출력 예
    {'environment': '환경', 'company': '회사', 'government': '정부, 정치', 'face': '얼굴'}
    ['environment', 'company', 'government', 'face']
    ['환경', '회사', '정부, 정치', '얼굴']
    
In [34]:
dictdata = {'environment': '환경', 'company': '회사', 'government': '정부, 정치', 'face': '얼굴'}
dictdata_keys = [data for data in dictdata.keys()] # using list comprehension
dictdata_values = [data for data in dictdata.values()] # using list comprehension
print (dictdata_keys)
print (dictdata_values)
['environment', 'company', 'government', 'face']
['환경', '회사', '정부, 정치', '얼굴']

Exercise 56. 데이터 구조 (딕셔너리)

  • 다음 영어 사전 데이터를 딕셔너리 변수로 만들어서 다음과 같이 출력하세요.
    • 단, 반복문을 사용하세요.
environment : 환경
company : 회사
gonernment : 정부, 정치
face : 얼굴
영어단어 의미
environment 환경
company 회사
government 정부, 정치
face 얼굴
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
In [38]:
dictdata = {'environment': '환경', 'company': '회사', 'government': '정부, 정치', 'face': '얼굴'}

for data in dictdata.keys():
    print (data, ":", dictdata[data])
environment : 환경
company : 회사
government : 정부, 정치
face : 얼굴

Exercise 57. 데이터 구조 (딕셔너리)

  • 다음 영어 사전 데이터를 딕셔너리 변수로 만들고 외움표시가 X 인 영어단어만 출력하세요
    • 단, key는 영어단어, value는 의미와 외움표시 두 데이터를 넣습니다.
environment : 환경
company : 회사
gonernment : 정부, 정치
face : 얼굴
영어단어 의미 외움표시
environment 환경 X
company 회사 O
government 정부, 정치 X
face 얼굴 X
  • 출력 예
    environment
    government
    face
    
In [51]:
dictdata = {'environment': ['환경', 'X'], 'company': ['회사', 'O'], 'government': ['정부, 정치', 'X'], 'face': ['얼굴', 'X']}

for data in dictdata.keys():
    if dictdata[data][1] == 'X':
        print (data)
# print (dictdata['environment'][0], dictdata['environment'][1])
environment
government
face

Exercise 58. 데이터 구조 (딕셔너리)

  • 다음 영어 사전 데이터를 딕셔너리 변수로 만들고 사용자로부터 영어단어를 입력받으면 해당 영어단어의 외움표시를 O로 수정하고, 외움표시가 X 인 단어만 출력하는 프로그램을 작성하세요.
    • 단, key는 영어단어, value는 의미와 외움표시 두 데이터를 넣습니다.
environment : 환경
company : 회사
gonernment : 정부, 정치
face : 얼굴
영어단어 의미 외움표시
environment 환경 X
company 회사 O
government 정부, 정치 X
face 얼굴 X
  • 입력: government
  • 출력
    environment
    face
    
In [59]:
dictdata = {'environment': ['환경', 'X'], 'company': ['회사', 'O'], 'government': ['정부, 정치', 'X'], 'face': ['얼굴', 'X']}

data = input()
dictdata[data][1] = 'O'
# print (dictdata)

for data in dictdata.keys():
    if dictdata[data][1] == 'X':
        print (data)
        
government
environment
face
본 자료 보다 업데이트된 자료와 함께 온라인 강의로 익히면 체계적으로 이해할 수 있습니다!
퀄러티가 다른 온라인 강의로 차근차근 익혀보세요

Exercise 59. 데이터 구조 (딕셔너리)

  • 다음 dict_all, dict2, dict3 딕셔너리 변수가 있을 때, dict2와 dict3 두 데이터를 dict_all 딕셔너리 변수에 추가한 후, dict_all 변수를 출력하세요.
    dict_all = {'environment': '환경', 'gonernment':'정부, 정치'}
    dict2 = {'company': '회사', 'face':'얼굴'}
    dict3 = {'apple': '사과'}
    
In [5]:
dict_all = {'environment': '환경', 'gonernment':'정부, 정치'}
dict2 = {'company': '회사', 'face':'얼굴'}
dict3 = {'apple': '사과'}

print (dict_all)
for data in dict2.keys():
    dict_all[data] = dict2[data]
for data in dict3.keys():
    dict_all[data] = dict3[data]    
print (dict_all)
{'environment': '환경', 'gonernment': '정부, 정치'}
{'environment': '환경', 'gonernment': '정부, 정치', 'company': '회사', 'face': '얼굴', 'apple': '사과'}

Exercise 60. 데이터 구조 (딕셔너리)

  • 다음 actor_info 딕셔너리 변수를 만들고, 홈페이지, 배우 이름, 최근 출연 영화 갯수를 다음과 같이 출력하세요
actor_info = {'actor_details': {'생년월일': '1971-03-01',
                   '성별': '남',
                   '직업': '배우',
                   '홈페이지': 'https://www.instagram.com/madongseok'},
 'actor_name': '마동석',
 'actor_rate': 59361,
 'date': '2017-10',
 'movie_list': ['범죄도시', '부라더', '부산행']}
In [11]:
actor_info = {'actor_details': {'생년월일': '1971-03-01',
                   '성별': '남',
                   '직업': '배우',
                   '홈페이지': 'https://www.instagram.com/madongseok'},
 'actor_name': '마동석',
 'actor_rate': 59361,
 'date': '2017-10',
 'movie_list': ['범죄도시', '부라더', '부산행']}

# actor name
print ("Actor Name:", actor_info['actor_name'])
# homepage
print ("Homepage:", actor_info['actor_details']['홈페이지'])
# movie list
print ("Movie List:", len(actor_info['movie_list']))
Actor Name: 마동석
Homepage: https://www.instagram.com/madongseok
Movie List: 3

Exercise 61. 데이터 구조 (집합)

number_list가 다음과 같은 리스트일 때 중복 숫자를 제거한 리스트를 만들고, 출력하세요

number_list = [5, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 10]
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
In [22]:
number_list = [5, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 10]
number_set = set(number_list)
print (number_set)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}