• Home
  • About
    • Yerim Oh photo

      Yerim Oh

      Happy and worthwhile day by day :)

    • Learn More
    • Email
    • LinkedIn
    • Instagram
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
  • Projects

[03] Python

27 Jun 2020

Reading time ~6 minutes

Table of Contents
  • [03] 파이썬 프로그래밍의 기초, 자료형 2
  • 목차
  • 리스트 자료형
    • 리스트 인덱싱, 슬라이싱
    • 리스트 연산하기
    • 리스트의 수정과 삭제
    • 리스트 관련 함수
      • 1.리스트에 요소 추가
      • 2.리스트 정렬
      • 3.리스트 뒤집기
      • 4.위치 알려주기
      • 5.리스트에 요소 삽입
      • 6.리스트 요소 제거
      • 7.리스트 요소 끄집어내기
      • 8.리스트 속의 개수 세기
      • 9.리스트 확장
  • 튜플 자료형
    • 리스트와 거의 비슷
    • 튜플 다루기
  • 딕셔너리 자료형
    • 딕셔너리 만드는 법 {}
      • 1.딕셔너리 쌍 추가
      • 2.딕셔너리 요소 삭제
    • 딕셔너리 관련 함수
      • 1. Key 리스트 만들기
      • 2. Value 리스트 만들기
      • 3. Key, Value 쌍 얻기
      • 4. Key: Value 쌍 모두 지우기
      • 5. Key로 Value 얻기
      • 6.해당 Key가 딕셔너리 안에 있는지 조사하기
  • 집합자료형
    • 만드는 법
    • 교집합, 합집합, 차집합 구하기
    • 집합 자료형 관련 함수
      • 1.값 1개 추가하기
      • 2.값 여러 개 추가하기
      • 3.특정 값 제거하기
  • 불자료형
    • 만드는 법
    • 자료형의 참과 거짓
    • 불 연산
  • 같이 풀어볼 문제

[03] 파이썬 프로그래밍의 기초, 자료형 2

목차

  • 리스트 자료형
    • 리스트 인덱싱, 슬라이싱
    • 리스트 연산하기
    • 리스트의 수정과 삭제
    • 리스트 관련 함수
  • 튜플 자료형
    • 리스트와 거의 비슷
    • 튜플 다루기
  • 딕셔너리 자료형
    • 딕셔너리 만드는 법 {}
    • 딕셔너리 관련 함수
  • 집합자료형
    • 만드는 법
    • 교집합, 합집합, 차집합 구하기
    • 집합 자료형 관련 함수
  • 불자료형
    • 만드는 법
    • 자료형의 참과 거짓
    • 불 연산 -같이 풀어볼 문제

리스트 자료형

리스트 인덱싱, 슬라이싱

리스트는 a=[a,b,c], 문자열은 a =‘abc ’ 다 같음

>>> a = [1, 2, ['a', 'b', ['Life', 'is']]]
>>> a[2][2][0]
'Life'
>>> a = [1, 2, 3, 4, 5]
>>> b = a[:2]
>>> b
[1, 2]
>>> a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
>>> a[3][:2]
['a', 'b']

리스트 연산하기

더하기 (+), 반복하기 (*), 길이 구하기 (len(a))

  • [정수, 실수] + “문자열” 정수와 문자열 연산 안됨 Str(a[숫자])로 숫자를 문자열 형태로 변환
    >>> a = [1, 2, 3]
    >>> str(a[2]) + "hi"
    

리스트의 수정과 삭제

리스트는 수정, 삭제 가능!!! (a[ 위치 ]=수정 후, del a[ ])

>>> a = [1, 2, 3]
>>> a[2] = 4
>>> a
[1, 2, 4]
>>> a = [1, 2, 3]
>>> del a[1] -> del 객체
>>> a
[1, 3]

리스트 관련 함수

문자열과 마찬가지로 리스트 변수 이름 뒤에 ‘.’를 붙여

1.리스트에 요소 추가

리스트 이름.append(추가할 것)
리스트의 맨 마지막에 추가, 어떤 자료형도 가능

2.리스트 정렬

리스트 이름.sort() /숫자 알파벳 가능

>>> a = [1, 4, 3, 2]
>>> a.sort(  )
>>> a
[1, 2, 3, 4]

3.리스트 뒤집기

리스트 이름.reverse() / 위와 같음

4.위치 알려주기

리스트 이름.index()/ 없으면 오류

5.리스트에 요소 삽입

리스트 이름.insert(삽입 위치, 삽입함수)

>>> a = [1, 2, 3]
>>> a.insert(0, 4) 
[4, 1, 2, 3]

6.리스트 요소 제거

리스트 이름.remove(지울 문자)
첫번째로 나오는 지울 문자 삭제 2개이면 2번 입력해!

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

7.리스트 요소 끄집어내기

리스트 이름.pop()-> 맨 마지막요소 돌려주고 삭제
리스트 이름.pop(지울요소)

>>> a = [1, 2, 3]
>>> a.pop(  )
3
>>> a
[1, 2]

8.리스트 속의 개수 세기

리스트 이름.count(세고 싶은 요소)

9.리스트 확장

리스트 이름.extend() / 뒤에 추가
할당 연산자 a+=[ ]과 동일 i += 1은 i = i + 1

>>> a = [1, 2, 3]
>>> a.extend([4, 5])
>>> a
[1, 2, 3, 4, 5]

튜플 자료형

리스트와 거의 비슷

  • 리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싼다.
  • 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.
    -> 프로그램이 실행되는 동안 그 값이 항상 변하지 않기를 바랄 때 사용
    >>> t1 = (  )
    >>> t2 = (1,)  1개만 일 때 콤마(,)를 반드시
    >>> t3 = (1, 2, 3)
    >>> t4 = 1, 2, 3  괄호(  )를 생략해도 무방
    >>> t5 = ('a', 'b', ('ab', 'cd'))
    

    빨간색- 리스트와 차이점

    >>> t1 = (1, 2, 'a', 'b')
    >>> del t1[0]->리스트와 달리 오류
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object doesn't support item deletion
    

튜플 다루기

리스트와 같음
1.인덱싱하기

>>> t1 = (1, 2, 'a', 'b')
>>> t1[위치]

2.슬라이싱하기

>>> t1[1:]

3.튜플 더하기

>>> t1 + t2

4.튜플 곱하기

>>> t2 * 3

5.튜플 길이 구하기

>>> len(t1)

딕셔너리 자료형

딕셔너리는 Key와 Value를 한 쌍으로 갖는 자료형 (‘이름’ = ‘홍길동)
이러한 대응 관계->연관 배열(Associative array) 또는 해시(Hash)
리스트나 튜플- 순차적으로 해당 요솟값구함, 찾기 위해 사전의 내용을 순차적으로 모두 검색
딕셔너리- Key를 통해 Value 얻음, 해당 단어가 있는 곳만 펼침

딕셔너리 만드는 법 {}

{Key1:Value1, Key2:Value2, Key3:Value3, …}
>>> dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}

Key: 변하지 않는 값, 리스트 X
Value : 변하는 값과 변하지 않는 값, 리스트 모두 가능

1.딕셔너리 쌍 추가

딕셔너리이름[‘Key’]= ‘Value’

>>> a['name'] = 'pey'
>>> a
{1: 'a', 2: 'b', 'name': 'pey'}
{'name':'pey'} 쌍 추가

2.딕셔너리 요소 삭제

Del 딕셔너리이름[‘key’]

>>> del a[1]
>>> a
{'name': 'pey', 3: [1, 2, 3], 2: 'b'} -> key가 1인 key:value 쌍 삭제

+주의___ Key는 고유한 값, 즉 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시된다

>>> a = {1:'a', 1:'b'} -> 1이라는 Key 값이 중복으로 사용
>>> a  
{1: 'b'}                -> 1:’a’ 쌍이 무시됨

딕셔너리 관련 함수

딕셔너리가 자체적으로 가지고 있는 관련 함수

1. Key 리스트 만들기

딕셔너리 이름.keys(공백)

>>> a = {'name': 'pey', 'phone': '0119993323', 'birth':'1118'}
>>> a.keys(  )
dict_keys(['name', 'phone', 'birth'])

반복문 이용
for 아무문자 in 딕셔너리 이름.keys(공백)

>>> for k in a.keys(  ):
...     print(k)
... 
name 
phone
birth
dict_keys 를 리스트로 변환
list(딕셔너리 이름.keys(공백))
>>> list(a.keys(  ))
['name', 'phone', 'birth']

2. Value 리스트 만들기

딕셔너리 이름.value(공백)

>>> a.values(  )
dict_values(['pey', '0119993323', '1118'])

3. Key, Value 쌍 얻기

딕셔너리 이름.item(공백)

>>> a.items(  )
dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])

4. Key: Value 쌍 모두 지우기

딕셔너리 이름.clear(공백)

>>> a.clear(  )
>>> a
{}

5. Key로 Value 얻기

딕셔너리 이름.get(‘key’)

>	print(딕셔너리 이름.get(‘key’)) 존재X:None(거짓)
>	Key 값이 없을 경우 미리 정해 둔 디폴트 값을 대신출력
get(‘key’, '디폴트 값')
print(딕셔너리 이름.get(‘key’)) 존재X:오류
```python
>>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> a.get('name')
'pey'
>>> print(a.get('nokey'))
None
>>> print(a['nokey'])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'nokey'
>>> a.get('foo', 'bar')
'bar'

6.해당 Key가 딕셔너리 안에 있는지 조사하기

‘key’ in 딕셔너리 이름

>>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False

집합자료형

만드는 법

  • 중복을 허용하지 않는다.(중복제거 필터로 이용가능)
  • 순서가 없다(Unordered).(= 딕셔너리)_ 인덱싱 지언 안함 -set(리스트 or 문자열 or 공백) -교집합, 합집합, 차집합 구할 때 유용
    >>> s1 = set([1,2,3])
    >>> s1
    {1, 2, 3}
    >>> s2 = set("Hello")
    >>> s2
    {'e', 'H', 'l', 'o'}
    

    안덱싱으로 접근하려면 리스트나 튜플로 전환

    >>> s1 = set([1,2,3])
    >>> l1 = list(s1) -> 리스트로 변환
    >>> l1 
    [1, 2, 3]
    >>> l1[0]
    1
    >>> t1 = tuple(s1) -> 튜플로 변환
    >>> t1
    (1, 2, 3)
    >>> t1[0]
    1
    

교집합, 합집합, 차집합 구하기

  1. 교집합 s1 & s2 or s1.intersection(s2)
  2. 합집합 s1 | s2 or s1.union(s20
  3. 차집합 s1 - s2 or s1.difference(s2)

집합 자료형 관련 함수

1.값 1개 추가하기

집합 이름.add(추가 문자)

>>> s1 = set([1, 2, 3])
>>> s1.add(4)
>>> s1
{1, 2, 3, 4}

2.값 여러 개 추가하기


```python
>>> s1 = set([1, 2, 3])
>>> s1.update([4, 5, 6])
>>> s1
{1, 2, 3, 4, 5, 6}

3.특정 값 제거하기


```python
>>> s1 = set([1, 2, 3])
>>> s1.remove(2)
>>> s1
{1, 3}

불자료형

만드는 법

-불(bool) 자료형이란 참(True)과 거짓(False) 값만 갖음

>>> a = True
>>> b = False   ->이렇게 지정해 두면
>>> type(a)
<class 'bool'>
>>> type(b)
<class 'bool'>

type(x)는 x의 자료형을 확인하는 파이썬의 내장 함수이다
조건문의 반환값으로도 사용 가능

>>> 1 == 1
True

자료형의 참과 거짓

>>> if []:            -> 만약 [ ]가 참이면
...     print("참")   ->‘참’ 문자열 출력
... else:             -> 만약 [ ]가 거짓이면 
...     print("거짓")  ->거짓’ 문자열 출력
...
거짓

불 연산

bool() -> 참과 거짓 출력 가능
>>> bool([1,2,3])
True
>>> bool([])
False

같이 풀어볼 문제

백준 1157
백준 1152



PythonBasic Share Tweet +1