코락 CoRock
코딩하는 락스타
코락 CoRock
  • 분류 전체보기 (393)
    • frameworks (19)
      • spring (19)
      • spring-boot (0)
      • testing (0)
    • languages (94)
      • java (39)
      • kotlin (0)
      • python (42)
      • r (13)
    • libraries (0)
    • programming (239)
      • android (13)
      • c (17)
      • cpp (22)
      • database (18)
      • design-pattern (4)
      • data-structures (11)
      • git (8)
      • hadoop (6)
      • html-css (7)
      • issue (4)
      • javascript (26)
      • jsp (34)
      • os (29)
      • php (6)
      • preferences (19)
      • etc (15)
    • discography (37)
      • k-pop (18)
      • pop (19)
    • blog (3)

블로그 메뉴

  • Programming
  • Java
  • JavaScript
  • Discography
  • K-Pop Songs
  • Pop Songs
  • Blog
  • Guestbook

공지사항

인기 글

태그

  • 자바스크립트
  • javascript
  • CentOS
  • Android
  • r
  • linux
  • 파이썬
  • Java
  • Spring
  • jsp
  • oracle
  • python

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
코락 CoRock

코딩하는 락스타

languages/python

[Python] List, Tupple, Dictionary

2018. 12. 18. 13:19
반응형

3. List, Tupple, Dictionary

 

3.1 리스트(List)

3.1.1 임의의 객체를 순차적으로 저장하는 집합적 자료형

3.1.2 각 값에 대해 인덱스가 부여됨

3.1.3 변경 가능

3.1.4 대괄호 [ ] 사용

3.1.5 range() 함수를 통한 인덱스 리스트 생성 가능

range(k): 0부터 k-1까지의 숫자의 리스트를 반환함

 

 

3.2 튜플(Tupple)

3.2.1 리스트와 유사하지만 튜플 내의 값을 변경할 수 없음

3.2.2 각 값에 대해 인덱스가 부여됨

3.2.3 변경 불가능

3.2.4 소괄호 ( ) 사용

 

 

3.3 사전(Dictionary)

3.3.1 정수형 인덱스가 아닌 키를 이용하여 값을 저장 및 조회하는 자료 구조

3.3.2 저장된 각 자료에 대한 순서는 의미 없음

3.3.3 중괄호 { } 사용

3.3.4 컴머(,)를 기준으로 아이템 구분

3.3.5 사전(Dictionary)의 원소 → key : value(쌍으로 이루어짐)

3.3.6 사전.keys( ) → key만 추출(임의의 순서)

3.3.7 사전.values( ) → value만 추출(임의의 순서)

3.3.8 사전.items( ) → key와 value를 튜플로 추출(임의의 순서)

3.3.9 keys, values, items가 반환하는 자료형 → 리스트

 

 

3.4 자료형 요약 정리

자료형

변경가능여부

인덱스사용여부

수치형

변경불가능(Immutable)

 

문자열

변경불가능(Immutable)

사용

List

변경가능(Mutable)

사용

Tupple

변경불가능(Immutable)

사용

Dictionary

변경가능(Mutable)

 

 

 

3.5 실습 예제

List

# 리스트
# [ ] 대괄호로 감싸고 쉼표로 요소를 구분한다.
l1 = [1, 3, 5, 7, 9]
print(l1)

# 첫 번째 요소
print(l1[0])

# 뒤에서 첫 번째 요소
print(l1[-1])

l1 = [1, 2, 3, ['a', 'b', 'c']]

# 마지막 요소(1차원 배열)의 첫 번째 값
print(l1[-1][0])

 

얕은 복사와 깊은 복사

# 얕은 복사
a = [1, 2, 3, 4, 5]
b = a       # 참조변수만 복사됨(실제 리스트가 복사되지 않음)
b[0] = 10
print(a)
print(b)

# 깊은 복사
a = [1, 2, 3, 4, 5]
b = a[:]    # 실제 리스트가 복사됨
b[0] = 10
print(a)
print(b)

 

리스트 합치기

a = [1, 2, 3, 4, 5]

print(type(a))
print(len(a))   # 리스트의 요소 개수

# [start:end - 1]
# 0번부터 1번까지
print(a[0:2])

a = [1, 2, 3]
b = [4, 5, 6]
c = a + b       # 리스트 합치기
print(c)

a = [1, 2, 3]
b = a * 3       # 리스트 3회 반복
print(b)

 

문자열 출력

a = [1, 2, 3]

print(a[2] + "hi")          # 숫자와 문자열은 + 할 수 없음
print(str(a[2]) + "hi")     # str(숫자): 숫자를 문자열로 변환
print(a[2], "hi")           # 공백이 추가됨

 

리스트 변경

a = [1, 2, 3]

# 1번 추출
print(a[1:2])
print(a[1])
print(type(a[1:2]))
print(type(a[1]))

# 리스트의 내용 변경
a[1:2] = ['a', 'b', 'c']
print(a)

a = [1, 2, 3]

# 하위 리스트로 입력됨
a[1] = ['a', 'b', 'c']
print(a)

 

리스트 삭제

# 리스트 삭제
a = [1, 2, 3]

a[1:3] = []     # 인덱스 1 ~ 2가 지워짐
print(a)

a = [1, 2, 3]
del a[1]        # 인덱스 1이 지워짐
print(a)

 

리스트 추가

a = [1, 2, 3]

# 리스트의 마지막 위치에 요소 추가
a.append(4)
print(a)

# 리스트의 마지막 위치에 하위 리스트 추가
a.append([5, 6])
print(a)

 

리스트 정렬

# 리스트의 정렬
a = [1, 4, 3, 2]
a.sort()
print(a)

a = ['a', 'c', 'b']
a.sort()
print(a)

 

리스트 뒤집기

# 리스트 뒤집기
list = ['a', 'c', 'b']
list.reverse()
print(list)

list.index(x[, start[, end]])

a = [1, 2, 3]

print(a.index(3))   # 리스트 a에서 3이 위치한 인덱스 값
print(a.index(1))   # 리스트 a에서 1이 위치한 인덱스 값

# 존재하지 않는 값인 경우 에러 발생
print(a.index(0))   # 리스트 a에서 0이 위치한 인덱스 값

 

리스트에 요소 삽입

# 리스트에 요소 삽입(insert)
list = [1, 2, 3]
print(list)

# 인덱스 0에 4 insert
list.insert(0, 4)
print(list)

 

리스트 요소 제거

# 리스트 요소 제거(remove)
list = [1, 2, 3, 1, 2, 3]

# 첫 번째 값만 제거
list.remove(3)
print(list)

 

리스트 요소 끄집어내기

# 리스트 요소 끄집어내기(pop)
# pop(): 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제
list = [1, 2, 3]
popped_item = list.pop()
print(list)
print(popped_item)

 

리스트 개수 세기

# 리스트 개수 세기(count)
list = [1, 2, 3, 1]
count_of_one = a.count(1)
print(count_of_one)

 

리스트 확장

# 리스트 확장(extend)
# extend(x)에서 x에는 리스트만 올 수 있음
list = [1, 2, 3]
list.extend([4, 5])
print(list)

 

in과 not in

# in과 not in
list = [1, 2, 3, 4, 5]

# list에 2가 포함되어 있는가?
result = 2 in list
print(result)

# list에 2가 포함되어 있지 않은가?
result = 2 not in list
print(result)

 

튜플 자료형

# 튜플 자료형
# 리스트는 대괄호 [ ]로 감싸고 튜플은 소괄호 ( )로 감싼다.
# 리스트는 수정, 삭제가 되지만 튜플은 수정, 삭제가 안 됨
t1 = (1, 2, 'a', 'b')   # 튜플 ()로 감싼다.
t1[0] = 'c'             # 튜플은 내용을 바꿀 수 없음
del t1[0]

 

t2 = (1, 2, 'a', 'b')
print(type(t2))
print(t2)       # 튜플의 모든 요소 출력
print(t2[0])    # 튜플의 첫 번째 요소

# 새로운 튜플이 만들어짐
print(t1[1:])   # 인덱스 1부터 끝까지

t3 = (3, 4)
print(t2 + t3)  # 튜플 합치기(새로운 튜플 생성)
print(t2)
print(t3)
print(t2 * 3)   # 튜플 곱하기(반복)

 

# 튜플 풀기
t4 = (1, 2, 3)

# 튜플의 값을 각각의 변수에 저장
n1, n2, n3 = t4
print("{0} {1} {2}".format(n1, n2, n3))

# 변숫값 교환하기
n1, n2 = n2, n1
print("{} {}".format(n1, n2))

 

# 튜플과 리스트의 변환
my_list = [1, 2, 3]
my_tuple = ('x', 'y', 'z')

# 리스트를 튜플로 복사
print(tuple(my_list))

# 튜플을 리스트로 복사
print(list(my_tuple))

 

딕셔너리 자료형

# 딕셔너리 자료형
# key와 value를 한 쌍으로 갖는 자료형(자바의 HashMap과 비슷함)
# { key: value, key: value }
d1 = {1: 'a'}
d1[2] = 'b'
print(d1)
print(type(d1))

 

 

d2 = {"name": "이효원", "phone": "01099932233", "birth": "920528"}
print(d2)
print(d2["name"])       # 딕셔너리["key"]
print(d2.get["name"])   # 딕셔너리.get("key")
print(d2["phone"])
print(d2.get["phone"])
print(d2["birth"])
print(d2.get["birth"])

 

 

 

 

 

 

 

 

 

# 해당 Key가 딕셔너리 안에 있는지 조사하기(in)

a = {'name': '이도훈', 'phone': '01099933323', 'birth': '920528'}

b = 'name' in a

print(b)

b = 'email' in a

print(b)

True

False

 

# 집합 자료형

# 중복값을 허용하지 않음, 순서가 없음

s1 = set([1, 2, 3])

print(s1)

{1, 2, 3}

 

# 교집합

s1 = set([1, 2, 3, 4, 5, 6])

s2 = set([4, 5, 6, 7, 8, 9])

s3 = s1 & s2

print(s3)

s3 = s1.intersection(s2)

print(s3)

 

# 합집합

s4 = s1 | s2

print(s4)

s4 = s1.union(s2)

print(s4)

 

# 차집합

s5 = s1 - s2

print(s5)

s5 = s1.difference(s2)

print(s5)

{4, 5, 6}

{4, 5, 6}

{4, 5, 6}

{1, 2, 3, 4, 5, 6, 7, 8, 9}

{1, 2, 3, 4, 5, 6, 7, 8, 9}

반응형
저작자표시 비영리 변경금지 (새창열림)
    'languages/python' 카테고리의 다른 글
    • [Python] 제어문
    • [Python] 콘솔입출력
    • [Python] 기본문법
    • [Python] 파이썬 개발환경 설정
    코락 CoRock
    코락 CoRock
    A COder dreaming of being a ROCKstar

    티스토리툴바