Python_2. 리스트, 튜플, 딕셔너리
리스트
💡 대괄호[ ]
로 감싸 주고 각 요솟값은 쉼표,
로 구분해 준다.
a = [] # 비어있는 리스트 / a = list()도 가능
b = [1, 2, 3] # 숫자를 요솟값인 리스트
c = ['MY', 'name', 'is', 'Jiyoung'] # 문자열을 요솟값인 리스트
d = [1, 2, 'Im', 'Jiyoung'] # 숫자와 문자열을 함께 요솟값으로 가진 리스트
e = [1, 2, ['Im', 'Jiyoung']] # 리스트 자체가 요솟값인 리스트
리스트 인덱싱
b = [1, 2, 3]
b[0] # 1
b[-1] # 3 / [-1]은 리스트의 마지막 요소 값
c = ['MY', 'name', 'is', 'Jiyoung']
c[2] # 'is'
e = [1, 2, ['Im', 'Jiyoung']]
e[2][1] # 'Jiyoung'
리스트 슬라이싱
a = [1, 2, 3, 4, 5]
a[0:2] # [1, 2]
a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
a[2:5] # [3, ['a', 'b', 'c'], 4]
a[3][:2] # ['a', 'b']
#a[3]은 ['a', 'b', 'c'], 따라서 a[3][:2]는 ['a', 'b', 'c']의 첫 번째 요소부터
#세 번째 요소 직전까지의 값, 즉 ['a', 'b']
리스트 연산
더하기
a = [1, 2, 3]
b = [4, 5, 6]
a + b # [1, 2, 3, 4, 5, 6]
반복하기
a = [1, 2, 3]
a * 3 # [1, 2, 3, 1, 2, 3, 1, 2, 3]
길이구하기 (len함수)
a = [1, 2, 3]
len(a) #3
💡실수하기 쉬운 리스트 연산 오류💡
a = [1, 2, 3] a[2] + "hi"
a[2]의 값인 3과 문자열 hi가 더해져서 3hi가 출력될 것이라고 생각할 수 있지만
TypeError
가 발생했다.Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'str'
a[2]에 저장된 값은 3이라는 정수인데 "hi"는 문자열이다. 정수와 문자열은 당연히 서로 더할 수 없기 때문에 형 오류가 발생한 것이다.
만약 숫자와 문자열을 더해서 '3hi'처럼 만들고 싶다면 숫자 3을 문자 '3'으로 바꾸어 주어야 한다. 다음과 같이 할 수 있다.str(a[2]) + "hi"
str
함수는 정수나 실수를 문자열의 형태로 바꾸어 주는 파이썬의 내장 함수이다.
수정과 삭제
스트는 값을 수정하거나 삭제할 수 있다. 삭제할 때는 파이썬 내장함수인 del
을 사용한다
a = [1, 2, 3]
a[2] = 4
a # [1, 2, 4] / 마지막 요소값인 3이 4로 수정
del[2]
a #[1, 2]
리스트 메서드
append
append(x)
는 리스트의 맨 마지막에 x를 추가하는 함수이다. 리스트 안에는 어떤 자료형도 추가할 수 있다.
a = [1, 2, 3]
a.append(4)
a # [1, 2, 3, 4]
a.append([5,6])
a # [1, 2, 3, 4, [5, 6]]
sort
sort
함수는 리스트의 요소를 순서대로 정렬해 준다.
숫자: 작은 값 부터 순서대로 정렬
문자: 알파벳 순서대로 정렬
a = [1, 4, 3, 2]
a.sort()
a # [1, 2, 3, 4]
b = ['d', 'a', 'c', 'b']
b.sort()
b # ['a', 'b', 'c', 'd']
c= ["라","바","다","가","나"]
c.sort()
c # ['가', '나', '다', "라", '바']
reverse
reverse
함수는 리스트를 역순으로 뒤집어 준다.
👆🏻이때 리스트 요소들을 순서대로 정렬한 다음 다시 역순으로 정렬하는 것이 아니라 현재의 리스트를 그대로 거꾸로 뒤집는다.
a = ['a', 'c', 'b']
a.reverse()
a # ['b', 'c', 'a']
index
index(x)
함수는 리스트에 x 값이 있으면 x의 위치 값을 돌려준다.
a = [1,2,3]
a.index(3) # 2 / 3의 위치는 a[2] 이므로 출력값 2
a.index(1) # 0 / 1의 위치는 a[0] 이므로 출력값 0
a.index(0) # ValueError / 리스트에 요소값 0이 없어 오류 발생
insert
insert(a, b)
는 리스트의 a번째 위치에 b를 삽입하는 함수이다.
👆🏻파이썬에서는 숫자를 0부터 센다는 것을 기억해야한다.👆🏻
a = [1, 2, 3]
a.insert(0, 4)
a # [4, 1, 2, 3] / 첫 번째 요소a[0] 위치에 요소값 4 insert
a.insert(3, 5)
a # [4, 1, 2, 5, 3] /네 번째 요소a[3] 위치에 요소값 5 insert
remove
remove(x)
는 리스트에서 첫 번째로 나오는 x를 삭제하는 함수이다
a = [1, 2, 3, 1, 2, 3]
a.remove(3)
a # [1, 2, 1, 2, 3] / 3이 2개지만 첫 번째 3만 제거
a.remove(3)
a # [1, 2, 1, 2] / 한 번 더 실행시 뒤에 있던 3도 제거
pop
pop()
은 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제한다.
a = [1,2,3]
a.pop() # 3
a #[1, 2] / 마지막 요소값을 제거
pop(x)
는 리스트의 x번째 요소를 돌려주고 그 요소는 삭제한다.
a = [1,2,3]
a.pop(1) # 2
a # [1, 3] / a[1]인 2를 꺼내 삭제
count
count(x)
는 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 돌려주는 함수이다.
a = [1,2,3,1]
a.count(1) #2 / 값 1 이 리스트에 2개 있음으로 2 출력
extend
extend(x)
에서 x에는 리스트만 올 수 있으며 원래의 a 리스트에 x 리스트를 더하게 된다.
a = [1,2,3]
a.extend([4,5])
a # [1, 2, 3, 4, 5]
b = [6, 7]
a.extend(b)
a # [1, 2, 3, 4, 5, 6, 7]
튜플
💡소괄호( )
으로 감싼 형태로 사용하고 대부분 리스트와 비슷하다.
💡리스트는 그 값의 생성, 삭제, 수정이 가능한 반면 한번 설정한 튜플은 그 값을 지우거나 변경할 수 없다.
i1 = ()
i2 = (1,) # 1개의 요소만을 가질 때는 반드시 요소 뒤에 콤마(,)
i3 = (1, 2, 3)
i4 = 1, 2, 3 # 괄호( ) 생략 가능
i5 = ('a', 'b', ('ab', 'cd'))
리스트와 튜플의 차이
리스트 | 튜플 | |
---|---|---|
요소 값 변화 | 가능 | 불가능 |
프로그램이 실행되는 동안 그 값이 항상 변하지 않기를 바란다거나 값이 바뀔까 걱정하고 싶지 않다면 튜플을 사용해야 한다. 반대로 수시로 그 값을 변화시켜야할 경우라면 리스트를 사용해야 한다.
딕셔너리
💡중괄호{ }
로 감싸주고, 각각의 요소는 Key : Value
형태로 이루어져 있으며 쉼표,
로 구분해 준다
💡딕셔너리는 Key와 Value를 한 쌍으로 갖는 자료형이다.
💡딕셔너리는 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는다. 이것이 바로 딕셔너리의 가장 큰 특징이다. Key의 Value을 찾기 위해 순차적으로 모두 검색하는 것이 아니라 찾고자 하는 Key가 있는 곳만 보는 것이다.
a = {'name':'Jiyoung', 'age':27, 'birth': '1229'}
💡Key의 Value를 얻기 위해 딕셔너리변수[Key]
를 사용한다
a = {'name':'Jiyoung', 'age':27, 'birth': '1229'}
a['name'] # 'Jiyoung'
a['age'] # 27
💡 딕셔너리에서 Key는 고유한 값이므로 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시되니 주의해야한다.
a = {'name':'Jiyoung', 'name':'Soyoung','age':27, 'birth': '1229'}
a['name'] # 'Soyoung' / 중복된 값중 맨 뒤의 값이 출력
💡Key에 리스트는 쓸 수 없지만 튜플은 Key에 쓸 수 있다. 값이 변하지 않는 튜플만 사용가능하다.
딕셔너리 메서드
keys
.keys()
는 딕셔너리의 Key만을 모아서 dict_keys 객체를 돌려준다.
>>> a = {'name':'Jiyoung','age':27, 'birth': '1229'}
>>> a.keys()
dict_keys(['name', 'age', 'birth'])
values
.values()
는딕셔너리의 value만을 모아서 dict_values 객체를 돌려준다.
>>> a.values()
dict_values(['Jiyoung', 27, '1229'])
items
.items()
함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려준다.
>>> a.items()
dict_items([('name', 'Jiyoung'), ('age', 27), ('birth', '1229')])
clear
clear
함수는 딕셔너리 안의 모든 요소를 삭제하고, 빈 딕셔너리는 { }로 표현한다.
>>> a.clear()
>>> a
{}
get
get(x)
함수는 x라는 Key에 대응되는 Value를 돌려준다.
>>> a = {'name':'Jiyoung','age':27, 'birth': '1229'}
>>> a.get('name')
'Jiyoung'
>>> a.get('age')
27
in
'x' in a
를 호출했을 때 x에 해당하는 Key가 존재하면 True을 돌려준다. 반대로 존재하지 않는 Key라면 False을 돌려준다.
>>> a = {'name':'Jiyoung','age':27, 'birth': '1229'}
>>> 'name' in a
True
>>> 'email' in a
False
참조 https://wikidocs.net/14
https://wikidocs.net/16
https://dojang.io/mod/page/view.php?id=2213
Author And Source
이 문제에 관하여(Python_2. 리스트, 튜플, 딕셔너리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ziy0ung1229/사전스터디-PY-bihwq0o5저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)