본문 바로가기

[Python] 기초 자료형 정리 및 실습 (Tuple, List, Dictionary 등)

Derrick 발행일 : 2023-07-31
728x90
반응형

 # 학습 목표

  - 문자열과 리스트를 이해하고 활용할 수 있다

  - Tuple(튜플)을 배우고, List(리스트)와의 차이점 이해

  - Dictionary(딕셔너리)를 이해하고 활용할 수 있다.

 

1. 문자열과 리스트의 활용 (메소드 정리)

1) list.append(x)

리스트 마지막에 'x'라는 값을 그대로 추가. x 자체를 원소로 취급하여 추가

 

# 1) 추가하는 원소(x)가 리스트일 경우
a = ['one', 'two', 'three']
b = ['four', 'five']

a.append(b)
print(a)				# ['one', 'two', 'three', ['four', 'five']]

# 2) 원소(x)가 문자열일 경우
a = ['one', 'two', 'three']
b = 'four'

a.append(b)
print(a)				# ['one', 'two', 'three', 'four']

2) list.extend(iterable)

리스트 마지막에 iterable에의 각 항목들을 모두 추가한다.

 

# 1) 리스트를 추가할 경우
a = ['one', 'two', 'three']
b = ['four', 'five']

a.extend(b)
print(a)				# ['one', 'two', 'three', 'four', 'five']

# 2) 문자열을 추가할 경우
a = ['one', 'two', 'three']
b = 'four'

a.extend(b)
print(a)				# ['one', 'two', 'three', 'f', 'o', 'u', 'r']

3) list.remove(x)

리스트 내에서 입력 인자(x)와 같은 값을 갖는 인자를 제거한다.  
→ 만약 2개 이상의 동일한 인자가 있을 경우, 앞에 있는 원소를 제거한다.

 

my_list = [1, 2, 6, 3, 4, 5, 6 ]

my_list.remove(6)
print(my_list)				# [1, 2, 3, 4, 5, 6]

4) list.sort() 

리스트 내 값을 순서대로 정렬 (오름차순) ↔ list.reverse() : 값을 역순으로 정렬 

 

# .sort()
my_list = [2, 4, 3, 1, 5, 6]
my_list.sort()

print(my_list)						# [1, 2, 3, 4, 5, 6]

# .reverse()
my_list = [2, 4, 3, 1, 5, 6]
my_list.reverse()

print(my_list)						# [6, 5, 1, 3, 4, 2]

5) list.insert(i, x) 

설정한 'i'번째 index에 'x'값을 삽입한다. 
 → list.insert(0,x) : 리스트(list)의 맨 처음에 삽입
 → list.insert(len(list), x) = list.append(x) : 리스트의 맨 뒤에 값을 추가하라는 의미

 

# ex1)
my_list = [1, 2, 3]
my_list(0, 4)
print(my_list)				# [4, 1, 2, 3]

# ex2)
my_list(3,5)				# index 3에 '5' 값을 추가하라는 의미
print(my_list)				# [4, 1, 2, 5, 3]

6) list.pop(i) 

인덱스 i의 원소를 제거 후에 그 원소를 반환 (괄호를 비울 경우 마지막 원소)
즉, i에 해당하는 원소를 리스트 내에서 제거하고 값으로 출력된다. 

 

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

print(my_list.pop(0))			# 1 
print(my_list.pop())			# 5  (빈 괄호면 마지막 원소 출력)

7) seq.count(i)

시퀸스 내부의 'i' 라는 인자의 개수를 반환 

 

my_seq = [2, 2, 2, 4, 4]
print(my_seq.count(2))			

>> 3 							# (=seq 내 2의 원소는 총 3개)

8) str.split(i)

'i'를 기준으로 하여 문자열을 쪼개서 리스트를 반환 (문자열 → 리스트)
(괄호를 비울 경우, 공백을 기준으로 나눔)

 

my_str = "1 2 3 4 5"
print(my_str.split()) 				
# ['1', '2', '3', '4', '5']

test = "A, B, C, D"
print(test.split(','))				# ['A', 'B', 'C', 'D']

9) str.join(list)

str를 기준으로 리스트에 있는 원소들을 합쳐서 문자열로 반환 (리스트 → 문자열)
(괄호를 비울 경우, 공백을 기준으로 합침)
→ list : 합칠 원소들이 포함된 리스트
→ str : 원소들을 병합할 때의 기준 

 

my_list = ['a', 'p', 'p', 'l', 'e']
print(''.join(my_list))					# apple 출력

my_friend = ['Cat', 'Dog']
print('&'.join(my_friend))				# Cat&Dog 출력

 

반응형

 

2. Tuple(튜플)

여러 자료를 담는 자료형이 필요할 경우 대부분 리스트(List)를 이용한다. 
하지만, 값이 변경될 가능성이 있다. 따라서 많은 데이터를 넣으면서 값이 바뀌지 않아야 할 때 Tuple(튜플) 이용한다.

 

tuple_zero = ()
tuple_one = (1, )				# tuple 내 원소 하나일 때는 ',' 붙이기
tuple_ = (1, 2, 3, 4, 5)
tuple_ = 1, 2, 3, 4, 5				# tuple 인식함

1) Tuple의 특징

Tuple을 한번 생성하면 자료를 추가/삭제/변경은 불가능하다. ☆☆☆
Tuple도 시퀀스 자료형이므로 Index를 이용한 인덱싱과 슬라이싱이 가능하다. 

 

my_tuple = ('t', 'w', 'i', 'c', 'e')
print(my_tuple[1]) 					# 'w'
print(my_tuple[2:4])				# 'i', 'c'		(2~3번째까지)

 

in 연산자로 Tuple 안의 원소 확인할 수 있고, len() 함수로 Tuple의 길이도 확인 가능

 

my_tuple = ('t', 'w', 'i', 'c', 'e')
print('t' in my_tuple)				# True
print(len(my_tuple))				# 5

 

'+' 연산자로 Tuple끼리 연결할 수 있고, ' * ' 연산자로 Tuple을 반복시킬 수 있다.

 

my_tuple = ('a', 'b', 'c')
print(('d', 'e') + my_tuple)			# ('a', 'b', 'c', 'd', 'e')
print(my_tuple * 2)				# ('a', 'b', 'c','a', 'b', 'c')

2) Tuple vs List 

리스트(List)는 내부 원소의 값을 수정/삭제/추가가 가능하고, 튜플(Tuple)은 불가능!

 

my_tuple = (1, 2, 3)

try:
	#인덱싱을 이용해서 Tuple의 값을 변경
	my_tuple[2] = 5
   
except TypeError:
	print("Tuple은 값을 변경할 수 없습니다.")	

try:
	# .append()를 이용하여 Tuple의 값을 추가
    my_tuple.append(6)
    
except AttributeError:
	print("Tuple은 값을 추가할 수 없습니다.")

print(my_tuple)

# 출력값
>> 
Tuple은 값을 변경할 수 없습니다.
Tuple은 값을 추가할 수 없습니다.
(1, 2, 3)
→ Tuple을 추가/변경할려고 해도 변경되지 않는다.
 +) try문을 실행하다가 오류가 발생하면, except문을 실행하게 된다. 

 

3. Dictionary(딕셔너리)

1) Dictionary 란

짝꿍이 있는 자료형 (성, 이름, 이메일, 비밀번호 등) - { } 중괄호로 묶어서 표현된다.
 → {key : value}의 형식 : key를 알면 value를 알 수 있음
 → key : 열쇠처럼 Dictionary에서 Value를 가져오기 위한 중요 요소
 → value : Dictionary에서 Key로 꺼낸 자료

 

# name, age : key / Michael, 10 : value

person = {'name':'Michael', 'age':10}
print(person['name'])				# Michael
print(person['age'])				# 10

2) Dictionary 자료 추가 및 제거

 

# key(hometown)과 value(Seoul)를 dictionary에 추가

person = {'name':'Michael', 'age':10}
person['hometown'] = 'Seoul'

# del 함수로 Dictionary의 원소 삭제 (제거할 key 입력)

del person['age']
print(person)				# {'name':'Michael', 'hometown':'Seoul'}

 

3) Dictionary의 특징

Key는 변할 수 없는 자료형이므로 리스트는 안되고, 튜플(tuple)은 가능하다!
→ 리스트는 변경할 수 있으므로 리스트 X, 튜플을 Key로 입력 Okay
더불어 하나의 Dictionary 내에 2개 이상의 동일한 Key가 있으면 안된다.
즉, 하나의 Key만 존재

 

# Example 1)
data = {[1, 2, 3] : 'Alphabet'}				# Error
data = {(1, 2, 3) : 'Number'}				# OK

# Exampel 2)
my_dict = {}

my_dict[1] = "integer"
my_dict['a'] = "String"
my_dict[(1,2,3)] = "Tuple"

print(my_dict)				# {1: 'integer', 'a': 'String', (1,2,3): 'Tuple'}

try:
	my_dict[[1,2,3]] = "List"		# List와의 대응관계 테스트
    
except TypeError:
	print("List는 Dictionary의 Key가 될 수 없습니다."
    # TypeError 발생으로 해당 문구 출력 확인
 List는 원소의 삽입과 삭제가 자유로운 자료형이므로, 변경될 수 없는 Dictionary의 Key로는 적합하지 않다.
 따라서 여러 데이터를 Key로 사용하고 싶다면? Tuple(튜플)을 사용하면 된다!

 

 

댓글