"파이썬 스터디3"의 두 판 사이의 차이

seonae's wiki
이동: 둘러보기, 검색
(새 문서: {{스터디 |스터디이름 = 2019 파이썬 스터디 |일정 = 2019/1/17 4-6시 |장소 = 강의동 110호 |참여인원 = 광우,선애,승진,나라,에릭,인혁 |내용 = 파...)
 
(연습문제2)
 
(같은 사용자의 중간 판 8개는 보이지 않습니다)
1번째 줄: 1번째 줄:
 +
[[2019 겨울방학 스터디 | 스터디 홈]]
 
{{스터디
 
{{스터디
 
|스터디이름 = 2019 파이썬 스터디
 
|스터디이름 = 2019 파이썬 스터디
|일정 = 2019/1/17 4-6시
+
|일정 = 2019/1/24 4-6시
 
|장소 = 강의동 110호
 
|장소 = 강의동 110호
|참여인원 = 광우,선애,승진,나라,에릭,인혁
+
|참여인원 = 광우,선애,승진,나라
 
|내용 = 파이썬기초 : 자료형(튜플, 집합)
 
|내용 = 파이썬기초 : 자료형(튜플, 집합)
 
}}
 
}}
  
 
===자료형:튜플===
 
===자료형:튜플===
 +
*튜플(tuple) : 시퀀스 자료형으로 리스트와 거의 비슷. '''BUT''' ()로 표현, 수정 불가능.
 +
**튜플이 필요한 이유? 변경가능한 자료는 리스트로, 변경하면 안되는 자료는 튜플로 처리.
 +
<pre>
 +
#튜플의 기본 형태
 +
>>> t1 = ()
 +
>>> t2 = (1,)
 +
>>> t3 = (1, 2, 3)
 +
>>> t4 = 1, 2, 3
 +
>>> t5 = ('a', 'b', ('ab', 'cd'))
  
===자료형:집합===
+
#튜플의 ()와 수식의 ()는 주의!
 +
>>> r = (1)
 +
>>> r = (1,)
 +
>>> r = 1,
 +
</pre>
 +
 
 +
*튜플 연산
 +
<pre>
 +
#인덱싱
 +
>>> t1 = (1, 2, 'a', 'b')
 +
>>> t1[0]
 +
>>> t1[3]
 +
 
 +
#슬라이싱
 +
>>> t1 = (1, 2, 'a', 'b')
 +
>>> t1[1:]
 +
 
 +
#더하기
 +
>>> t1 = (1, 2, 'a', 'b')
 +
>>> t2 = (3, 4)
 +
>>> t1 + t2
 +
 
 +
#곱하기
 +
>>> t2 = (3, 4)
 +
>>> t2 * 3
 +
 
 +
#튜플 길이 구하기
 +
>>> t1 = (1, 2, 'a', 'b')
 +
>>> len(t1)
 +
</pre>
 +
 
 +
====연습문제1====
 +
*(1,2,3)이라는 튜플에 4를 추가해서 (1,2,3,4)로 만들어보자
 +
 
 +
 
 +
*'''튜플은 변경이 안됨'''
 +
<pre>
 +
#지우기
 +
>>> t1 = (1, 2, 'a', 'b')
 +
>>> del t1[0]
 +
 
 +
#변경하기
 +
>>> t1 = (1, 2, 'a', 'b')
 +
>>> t1[0] = 'c'
 +
 
 +
#에러 발생
 +
</pre>
 +
 
 +
*튜플 메소드
 +
<pre>
 +
>>> t = (1, 2, 3, 2, 2, 3)
 +
>>> t.count(2) #요소 갯수세기 count()
 +
>>> t.index(2) #요소 위치 파악 index()
 +
</pre>
 +
 
 +
*패킹(packing) & 언패킹(unpacking)
 +
**패킹 : 한데이터에 여러개의 데이터를 넣는것
 +
**언패킹 : 한 데이터에서 데이터를 각각 꺼내오는 것.
 +
<pre>
 +
>>> t = 1, 2, 'hello' #패킹
 +
>>> x, y, z = t #언패킹
 +
</pre>
 +
 
 +
*리스트와 튜플의 상호 변환 : list(), tuple()
 +
<pre>
 +
>>> T = (1,2,3,4,5)
 +
>>> L = list(T)
 +
>>> L[0] = 100
 +
>>> T = tuple(L)
 +
</pre>
 +
 
 +
*튜플의 사용 예시
 +
<pre>
 +
#예시 1, 여러개의 반환 값
 +
>>> def calc(a,b):
 +
            return a+b, a*b #튜플 반환
 +
>>> x, y = calc(a,b)
 +
 
 +
#예시 2, 함수의 인수
 +
>>> args = (4,5)
 +
>>> calc(*args)
 +
 
 +
#예시 3, 문자열 포맷팅
 +
>>> "%d %s" % (12, 'hello')
 +
</pre>
 +
 
 +
===자료형:사전===
 +
*사전(dictionary) : 특정 키(key)를 주면 이와 관련된 값(value)를 돌려주는 자료형.
 +
**임의 객체의 집합적 자료형. 데이터 저장 순서가 없음. 매핑형(mapping)
 +
**연관 배열(Associative array) or 해시(Hash) : 대응 관계를 나타내는 자료형 ex) "이름" = "홍길동", "day" = "1/1"
 +
** 기본형태 : {key: value}, {key1:value1, key2: value2 ....}
 +
**key에는 변하지 않는 값을 넣어야하지만 value에는 아무거나 넣어도 됨.
 +
 
 +
 
 +
*정보 예시 표
 +
{| class="wikitable" style="background:white;"
 +
! key || value
 +
|-
 +
| name || pey
 +
|-
 +
|phone || 01012345678
 +
|-
 +
| birth || 1211
 +
|}
 +
*정보 예시 사전
 +
<pre>
 +
>>> dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
 +
>>> dic['name']
 +
>>> dic['phone']
 +
>>> dic['birth']
 +
</pre>
 +
 
 +
 
 +
*사전 조작하기
 +
<pre>
 +
>>> dic['name'] = 'your name' #변경하기
 +
>>> dic['major'] = 'informatics' #추가하기
 +
>>> dic
 +
 
 +
>>> len(dic) #사전의 길이 파악
 +
>>> del dic['major'] #항목 삭제하기
 +
>>> 'name' in dic #멤버십테스트
 +
</pre>
 +
 
 +
 
 +
*key에는 변하지 않는 값을 넣어야하지만 value에는 아무거나 넣어도 됨.
 +
<pre>
 +
>>> d = {} #빈 사전 객체 생성
 +
>>> d['str'] = 'abc'
 +
>>> d[1] = 4
 +
>>> d[(1,2,3)] = 'tuple'
 +
>>> d[[1,2,3]] = 'list'
 +
>>> d[{1:2}] = 'dict'
 +
 
 +
#사전 만들기 dict()
 +
>>> dict() #빈 사전 만들기
 +
>>> dict(one=1, two=2)
 +
>>> dict([('one' ,1), ('two', 2)])
 +
>>> dict({'one' : 1 , 'two' : 2})
 +
</pre>
 +
 
 +
 
 +
*사전관련 함수
 +
<pre>
 +
>>> a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
 +
 
 +
#key리스트 얻기(keys)
 +
>>> a.keys()
 +
>>> list(a.keys())
 +
 
 +
#value 리스트 얻기(values)
 +
>>> a.values()
 +
>>> list(a.values())
 +
 
 +
#key, value 쌍 얻기(items)
 +
>>> a.items()
 +
>>> list(a.items())
 +
 
 +
#모든 요소 지우기(clear)
 +
>>> a.clear()
 +
>>> a
 +
 
 +
#key로 value얻기(get)
 +
>>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
 +
>>> a.get('name')
 +
>>> a['name']
 +
>>> a.get('abc')
 +
>>> a['abc']
 +
 
 +
>>> a.get('abc', 'def') #없는 경우 디폴트(default) 설정
 +
 
 +
#사전 복사하기
 +
>>> d = {'one' : 1, 'two' : 2, 'three' : 3}
 +
>>> d2 = d.copy()
 +
 
 +
</pre>
 +
 
 +
====연습문제2====
 +
*다음 표를 딕셔너리로 만들기
 +
{| class="wikitable" style="background:white;"
 +
! key || value
 +
|-
 +
| name || 홍길동
 +
|-
 +
| age || 30
 +
|-
 +
| birth || 1211
 +
|}
 +
 
 +
* 사전 a에 키 'C'가 없는데, 'C'가 없을 때 에러 대신 70이 나오게 하는 방법은?
 +
<pre>
 +
>>> a = {'A':90, 'B':80}
 +
>>> a['C']
 +
</pre>
 +
 
 +
*플러스 : 두개의 리스트로 사전 만들기 zip()
 +
<pre>
 +
>>> ['one', 'two', 'three', 'four']
 +
>>> [1,2,3,4]
 +
 
 +
#정답
 +
>>> keys = ['one', 'two', 'three', 'four']
 +
>>> values = [1,2,3,4]
 +
>>> dict(zip(keys, values))
 +
</pre>

2019년 1월 27일 (일) 14:31 기준 최신판

스터디 홈


자료형:튜플

  • 튜플(tuple) : 시퀀스 자료형으로 리스트와 거의 비슷. BUT ()로 표현, 수정 불가능.
    • 튜플이 필요한 이유? 변경가능한 자료는 리스트로, 변경하면 안되는 자료는 튜플로 처리.
#튜플의 기본 형태
>>> t1 = ()
>>> t2 = (1,)
>>> t3 = (1, 2, 3)
>>> t4 = 1, 2, 3
>>> t5 = ('a', 'b', ('ab', 'cd'))

#튜플의 ()와 수식의 ()는 주의!
>>> r = (1)
>>> r = (1,)
>>> r = 1,
  • 튜플 연산
#인덱싱
>>> t1 = (1, 2, 'a', 'b')
>>> t1[0]
>>> t1[3]

#슬라이싱
>>> t1 = (1, 2, 'a', 'b')
>>> t1[1:]

#더하기
>>> t1 = (1, 2, 'a', 'b')
>>> t2 = (3, 4)
>>> t1 + t2

#곱하기
>>> t2 = (3, 4)
>>> t2 * 3

#튜플 길이 구하기
>>> t1 = (1, 2, 'a', 'b')
>>> len(t1)

연습문제1

  • (1,2,3)이라는 튜플에 4를 추가해서 (1,2,3,4)로 만들어보자


  • 튜플은 변경이 안됨
#지우기
>>> t1 = (1, 2, 'a', 'b')
>>> del t1[0]

#변경하기
>>> t1 = (1, 2, 'a', 'b')
>>> t1[0] = 'c'

#에러 발생
  • 튜플 메소드
>>> t = (1, 2, 3, 2, 2, 3)
>>> t.count(2) #요소 갯수세기 count()
>>> t.index(2) #요소 위치 파악 index() 
  • 패킹(packing) & 언패킹(unpacking)
    • 패킹 : 한데이터에 여러개의 데이터를 넣는것
    • 언패킹 : 한 데이터에서 데이터를 각각 꺼내오는 것.
>>> t = 1, 2, 'hello' #패킹
>>> x, y, z = t #언패킹
  • 리스트와 튜플의 상호 변환 : list(), tuple()
>>> T = (1,2,3,4,5)
>>> L = list(T)
>>> L[0] = 100
>>> T = tuple(L)
  • 튜플의 사용 예시
#예시 1, 여러개의 반환 값
>>> def calc(a,b):
             return a+b, a*b #튜플 반환
>>> x, y = calc(a,b)

#예시 2, 함수의 인수
>>> args = (4,5)
>>> calc(*args)

#예시 3, 문자열 포맷팅
>>> "%d %s" % (12, 'hello')

자료형:사전

  • 사전(dictionary) : 특정 키(key)를 주면 이와 관련된 값(value)를 돌려주는 자료형.
    • 임의 객체의 집합적 자료형. 데이터 저장 순서가 없음. 매핑형(mapping)
    • 연관 배열(Associative array) or 해시(Hash) : 대응 관계를 나타내는 자료형 ex) "이름" = "홍길동", "day" = "1/1"
    • 기본형태 : {key: value}, {key1:value1, key2: value2 ....}
    • key에는 변하지 않는 값을 넣어야하지만 value에는 아무거나 넣어도 됨.


  • 정보 예시 표
key value
name pey
phone 01012345678
birth 1211
  • 정보 예시 사전
>>> dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> dic['name']
>>> dic['phone']
>>> dic['birth']


  • 사전 조작하기
>>> dic['name'] = 'your name' #변경하기
>>> dic['major'] = 'informatics' #추가하기
>>> dic

>>> len(dic) #사전의 길이 파악
>>> del dic['major'] #항목 삭제하기
>>> 'name' in dic #멤버십테스트


  • key에는 변하지 않는 값을 넣어야하지만 value에는 아무거나 넣어도 됨.
>>> d = {} #빈 사전 객체 생성
>>> d['str'] = 'abc'
>>> d[1] = 4
>>> d[(1,2,3)] = 'tuple'
>>> d[[1,2,3]] = 'list'
>>> d[{1:2}] = 'dict'

#사전 만들기 dict()
>>> dict() #빈 사전 만들기
>>> dict(one=1, two=2)
>>> dict([('one' ,1), ('two', 2)])
>>> dict({'one' : 1 , 'two' : 2})


  • 사전관련 함수
>>> a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}

#key리스트 얻기(keys)
>>> a.keys() 
>>> list(a.keys())

#value 리스트 얻기(values)
>>> a.values()
>>> list(a.values())

#key, value 쌍 얻기(items)
>>> a.items()
>>> list(a.items())

#모든 요소 지우기(clear)
>>> a.clear()
>>> a

#key로 value얻기(get)
>>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> a.get('name')
>>> a['name']
>>> a.get('abc')
>>> a['abc']

>>> a.get('abc', 'def') #없는 경우 디폴트(default) 설정

#사전 복사하기
>>> d = {'one' : 1, 'two' : 2, 'three' : 3}
>>> d2 = d.copy()

연습문제2

  • 다음 표를 딕셔너리로 만들기
key value
name 홍길동
age 30
birth 1211
  • 사전 a에 키 'C'가 없는데, 'C'가 없을 때 에러 대신 70이 나오게 하는 방법은?
>>> a = {'A':90, 'B':80}
>>> a['C']
  • 플러스 : 두개의 리스트로 사전 만들기 zip()
>>> ['one', 'two', 'three', 'four']
>>> [1,2,3,4]

#정답
>>> keys =  ['one', 'two', 'three', 'four']
>>> values = [1,2,3,4]
>>> dict(zip(keys, values))