본문 바로가기
python

파이썬8일(collection형/리스트(list)/튜플(tuple)/리스트 내포(List Comprehension)/순서가 있는 데이터 자료구조 (컬렉션)/튜플의 언패킹(unpacking))

by 쓰카 2023. 2. 12.
728x90

#컬렉션형(collection형), 자료구조 : 여러개의 데이터를 담아놓은 구조의 변수(객체)
#컬렉션의 종류 : 리스트(list),튜플(tuple), 세트(set), 딕셔너리(dictionary)
#1.순서 자료구조(sequence data structure) : 순서가 있고 색인(index)로 요소를 찾을 수 있다.
#2.비순서 자료구조(non sequence data structure) : 순서가 없고고 색인(index)로 요소를 찾을 수 없다.

#1.순서 자료구조(sequence data structure) : str(문자열), 리스트(list), 튜플(tuple)

#리스트(list)
#형식) 변수명(객체명) = [요소값1, 요소값2....]
#형식) 변수명 = list()

#enumerate클래스 : 순서가 있는 자료구조에 색인번호(인덱스번호)를 생성해서 가지고 있다.
#요소 데이터값과 인덱스 번호를 같이 사용하고 싶을 경우 사용

#             [0]      [1]     [2]     [3]
name_list = ["김하나","박두나","김세나","오네나"]
print("name_list = ",name_list)
print("enumerate(name_list) = ",enumerate(name_list)) #name_list의 색인 번호를 생성(0번부터 ~)
print("rang(10) = ",range(10))# 0 ~ 9 정수 생성
print("-------------")

#형식) 변수명 = list()
print(list(enumerate(name_list)))
print(list(range(10)))
print("-------------")

for i, name in enumerate(name_list):
    print(f"색인번호 = {i},이름 = {name}")
print("-------------")

#리스트 내포(List Comprehension)
#리스트내에 요소값을 넣을 경우 직관적인 코딩을로 저장하는 방법이다.
#형식)변수명 = [실행문 for 변수명 in 반복해서 가져올 변수(객체)]
# *** 실행문은 for문의 변수명과 동일해야 한다.!!

x = [2, 3, 1, 5, 7]
lst1 = [ i for i in x]
print("컴프리헨션 lst1 = ",lst1)
print("-------------")

lst2 = [ i * 2 for i in x]#x수의 2배
print("컴프리헨션 lst2 = ",lst2)
print("-------------")

lst3 = [i for i in range(10)]
print("컴프리헨션 lst3 = ",lst3)
print("-------------")

#1~ 10까지 홀수만 저장되는 리스트 만들기
lst4 = [i for i in range(1,10,2)]#홀수만
print("컴프리헨션 lst4 = ",lst4)
print("-------------")

#리스트 요소값 수정
#                [1][2][3][4][5]
#컴프리헨션 lst4 = [1, 3, 5, 7, 9]
lst4[2] = 6
print("컴프리헨션 lst4 = ",lst4)
print("-------------")

#조건을 지정한 컴프리헨션
lst5 = [ i for i in range (1,50) if i % 2 == 0]#짝수만
print("컴프리헨션 lst5 = ",lst5)
print("-------------")

lst6 = [ i for i in lst4 if i % 2 == 0]#짝수만
print("컴프리헨션 lst6 = ",lst6)
print("-------------")

#else문을 사용하는 경우 : 조건식이 for문의 왼쪽으로 이동하고 else문을 적는다.
lst7 = [ i if i % 2 == 0 else "홀수" for i in lst4 ]
print("컴프리헨션 lst7 = ",lst7)
print("-------------")

#순서가 있는 데이터 자료구조 (컬렉션)
#2)튜플(tuple) : 리스트와 유사하지만 읽기 전용(삽입, 삭제, 수정 안됨)
#형식) 변수명(객체명) = (요소값1, 요소값2....)
#형식) 변수명 = tuple()

t = () #비어있는 튜플 생성
print("t = ", t)
print("-------------")

t1 = (1,5,3,7,10)
print("t1 = ", t1)
print("-------------")

t2 = 2,4,6,8,10 #튜플 형식으로 처리한다.
print("t2 = ", t2)
print("-------------")

#t3 = 10 #기본 자료형
t3 = (10,) #요소값이 1개로 생성되는 튜플은 데이터값 뒤에 반드시 ,(콤마)를 붙여줘야 한다.
print("t3 = ", t3)
print("-------------")

#튜플 요소값에 접근
#t1 = (1,5,3,7,10)
print("t1[0] = ",t1[3])
print("-------------")

#튜플 요소값 수정
#t1[3] = 8 #튜플은 요소값 수정할 수 없다.
print("t1[0] = ",t1[3])
print("-------------")

#요소 반복과 검사
for i in t1:
    print(i)
print("-------------")

if 4 in t1:
    print("4가 있음!!!")
else:
    print("4가 없음!!!")
print("-------------")
print(4 in t1)

#튜플관련 함수
t1 = (1,5,3,7,10)
print("t1.count(3) = ",t1.count(3)) #t1 안에 3이 몇개인가? -> 1개
print("t1.count(3) = ",t1.index(3)) #t1 안에 3의 색인 번호가 몇 번인가? -> 2번째

#튜플의 언패킹(unpacking) : packing 되어 있는 데이터를 하나씩 뽑아와서 분리시켜서 사용한다.!!!
tp = ("김하나",165, 20, "부산광역시")
#tp = "김하나",165, 20, "부산광역시"
print("tp = ",tp)
print("-------------")

print("이름: tp[0] = ",tp[0])
print("키: tp[1] = ",tp[1],"cm")
print("나이: tp[2] = ",tp[2],"세")
print("주소: tp[3]= ",tp[3])
print("-------------")

tp1, tp2, tp3, tp4 = tp #언패킹!!!!
print("이름: tp1 = ",tp1)
print("키: tp2 = ",tp2,"cm")
print("나이: tp3 = ",tp3,"세")
print("주소: tp4 = ",tp4)
print("-------------")

#리스트 자료형으로 형 변환
lst10 = range(1,11)#1~10까지 정수를 생성해서 리스트 형식으로 저장
print("lst10 = ",lst10) #lst10 = range(1,11)
print("-------------")

lst11 = list(lst10)
print("lst11 = ",lst11)
print("-------------")

#튜플 자료형으로 형 변환
t10 = tuple(lst10)
print("t10 = ",t10)

파이썬8일.txt
0.00MB

반응형

댓글