TIL - python(리스트,딕셔너리,튜플,집합)

한성봉·2021년 4월 13일

유튜브 '나도코딩'채널의 파이썬 강좌를 토대로 정리한 내용입니다.

리스트(list)

지하철 칸별로 10명, 20명, 30명
subway = 10
subway = 20
subway = 30

subway = [10, 20, 30]
print(subway) # [10, 20, 30]

subway = ["유재석", "조세호", "박명수"]
print(subway) => ["유재석", "조세호", "박명수"]

append : 뒤에 추가

subway.append("하하")
print(subway) => ["유재석", "조세호", "박명수", "하하"]

insert : 원하는 위치에 추가

subway.insert(1, "정형돈")
print(subway) => ["유재석", "정형돈", "조세호", "박명수", "하하"]

pop : 뒤에 하나 제거

subway.pop()
print(subway) => ["유재석", "정형돈", "조세호", "박명수"]

count : 자료 개수 세기

print(subway.count("유재석")) => 1

정렬기능

num_list = [5, 3, 2, 1, 4]
num_list.sort()
print(num_list) => [1, 2, 3, 4, 5]

역순 정렬기능

num_list.reverse()
print(num_list) => [5, 4, 3, 2, 1]

리스트 자료 삭제

num_list.clear()
print(num_list) => []

다양한 리스트

mix_list = ["코딩", 1, True] 다양한 타입의 자료도 리스트 가능

리스트 결합

num_list = [1, 2, 3, 4, 5]
mix_list = ["코딩", 1, True]

num_list.extend(mix_list)
print(num_list) => [1, 2, 3, 4, 5, "코딩", 1, True]

딕셔너리(dictionary)

cabinet = {3: "유재석", 10: "김태호"}
print(cabinet) => {3: "유재석", 10: "김태호"}
{key: value, key: value}

cabinet = {"A-3": "유재석", "B-10": "김태호"}
print(cabinet["A-3"]) =>유재석
print(cabinet["B-10"]) =>김태호

해당 key의 value값 찾기

cabinet = {3: "유재석", 10: "김태호"}

print(cabinet[3]) => 유재석
print(cabinet[10]) => 김태호
print(cabinet.get(5)) => 김태호
print(cabinet.get(5)) => None
print(3 in cabinet) => True
print(5 in cabinet) => False

자료대체 & 자료추가

cabinet = {"A-3": "유재석", "B-10": "김태호"}

cabinet["A-3"] = "김종국"
cabinet["C-20"] = "하하"
print(cabinet) {'A-3': '김종국', 'B-10': '김태호', 'C-20': '하하'}

자료제거

cabinet = {"A-3": "유재석", "B-10": "김태호"}

del cabinet["A-3"]
print(cabinet) {'B-10': '김태호'}

key 값만 출력 & value 값만 출력

cabinet = {"A-3": "유재석", "B-10": "김태호"}

print(cabinet.keys()) dict_keys(['A-3', 'B-10'])
print(cabinet.values()) dict_values(['유재석', '김태호'])

key, value 값을 쌍으로 ()묶어서 출력

cabinet = {"A-3": "유재석", "B-10": "김태호"}

print(cabinet.items()) dict_items([('A-3', '유재석'), ('B-10', '김태호')])

모든 자료 제거

cabinet = {"A-3": "유재석", "B-10": "김태호"}

cabinet.clear()
print(cabinet) {}

튜플(tuple)

menu = ("돈까스", "우동")
print(menu[0]) 돈까스
print(menu[1]) 우동

튜플은 리스트와 비슷하지만 한 번 생성되면 값을 변경할 수 없다.
menu.add("생선까스") --> 값을 추가하는 것이 불가능

name = "홍길동"
age = "20"
hobby ="코딩"
print(name, age, hobby) 홍길동 20 코딩

각각의 변수에 값을 지정해서 출력할 수도 있지만,

name, age, hobby = "홍길동", "20", "코딩"
print(name, age, hobby) 홍길동 20 코딩

한번에 값을 지정해서 만들수도 있다.

집합(set)

my_set = {1,2,3,3,3}
print(my_set) {1, 2, 3}

집합에는 중복이 안되고, 순서가 없기 때문에 3을 세번 추가 했지만 {1, 2, 3}만 출력된다.

아래의 예시를 살펴보자.

java = {"유재석", "박명수", "정형돈"}
python = {"유재석", "노홍철", "하하"}

교집합 (and, &)

print(java & python) 유재석
print(java.intersection(python)) 유재석

합집합 (or, |)

print(java | python) {'유재석', '노홍철', '하하', '박명수', '정형돈'}
print(java.union(python)) {'유재석', '노홍철', '하하', '박명수', '정형돈'}

차집합 (a - b)

print(java - python) {'박명수', '정형돈'}
print(java.difference(python)) {'박명수', '정형돈'}

자료추가 (add)

python.add("김태호")
print(python) {'노홍철', '하하', '김태호', '유재석'}

자료삭제 (remove)

java.remove("유재석")
print(java) {'박명수', '정형돈'}

자료구조의 변경

menu = {"커피", "우유", "주스"}
print(menu, type(menu)) {'커피', '우유', '주스'} <class 'set'>

menu = list(menu)
print(menu, type(menu)) ['커피', '우유', '주스'] <class 'list'>

menu = tuple(menu)
print(menu, type(menu)) ('커피', '우유', '주스') <class 'tuple'>

자료구조를 변경하는 것이 가능하다.

0개의 댓글