Python 3일차

조영훈·2024년 8월 1일

Python

목록 보기
3/16
post-thumbnail

1. 리스트 (List)

리스트는 동적 배열로, 순서가 있고 값 변경이 가능하며, 다양한 자료형을 저장 가능

특징

1. 순서가 있다 (인덱스 0부터 시작).
2. 값 변경이 가능하다.
3. 리스트 내부에 또 다른 리스트를 가질 수 있다 (중첩 리스트).
4. 중복된 데이터를 허용한다.
5. 다양한 자료형을 저장할 수 있다.

예제 ✍️

a = [1, 2, 3]
b = [10, a, 20.5, True, '문자열']
print(id(a), id(b))

busor = ['개발부', '총무부', '영업부', '관리부']
print('부서목록->', busor)
print('부서 목록수', len(busor))
print(busor[2])

# 데이터 추가 및 삭제
busor.append('영업2부')
busor.remove('총무부')
busor.insert(0, '총무2과')
busor.extend(['개발2부', '개발3부'])
busor += ['영업3부']
print(busor)
print(busor.index('개발부'))
print('영업2부' in busor, '관리3부' in busor)

# 슬라이싱
aa = [1, 2, 3, 4, 5]
print(aa[0:2])

# 리스트 내부의 데이터 변경
aa = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
aa[0] = 100
print(aa)
aa[3][0] = 'good'
print(aa)
print(aa[3][:2])
print(aa[3][2])

# 리스트 삭제
aa = [1, 2, 3, ['good', 'b', 'c'], 4, 5]
aa.remove(4)
print(aa)
del aa[4]
print(aa)
aa[3].remove('c')
print(aa)
del aa[3][0]
print(aa)

# 리스트 정렬
aa = [3, 1, 5, 2, 4, 4]
aa.remove(aa[4])
aa.sort()
print(aa)
aa.sort(reverse=True)
print(aa)
print(aa.pop(0))
print(aa)



2. 튜플 (Tuple)

튜플은 리스트와 유사하지만 읽기 전용. 중복을 허용하며, 자료의 순서가 정해져 있다.

특징

1. 읽기 전용 (값 변경 불가).
2. 중복을 허용한다.
3. 리스트로 변환 가능하다 (반대도 가능).

예제 ✍️
t=('a','b','c','a')
print(t)
print(t,t*2,len(t)) #('a', 'b', 'c', 'a') ('a', 'b', 'c', 'a', 'a', 'b', 'c', 'a') 4
p=(1,2,3)#[1,2,3]->[1,10,3] 리스트는 변경가능
#p[1]=10 튜플은 변경 불가능
'''
list로 만들어주는 함수->list(객체명)
tuple로 만들어주는 함수->tuple(객체명)
'''
q=list(p)#리스트로 변경
print('q의 값',q,type(q))
q[1]=10
print('q의 값',q)
p=tuple(q)
print('p의값',p,type(p))

print('\n슬라이싱')
print(p[1:])#(10,3)
print('\n교환')
t1=(10,20)
a,b=t1 #(10,20)
b,a=a,b
t2=a,b
print('t2=>',t2,type(t2))



3. 집합 (Set)

집합은 순서가 없고 중복된 데이터를 저장할 수 없다. 인덱싱과 슬라이싱이 불가능.

특징

1. 순서가 없다.
2. 중복된 데이터 저장 불가.
3. 인덱싱, 슬라이싱 불가.

예제 ✍️
a={1,2,3,1}
print(a)#{1, 2, 3} 중복된 데이터 출력X
print(len(a))#3
#집합
b={3,4}
print(a.union(b))#{1,2,3,4} 합집합
print(a.intersection(b))#{3} 교집합
print(a-b,a | b,a & b)#{1, 2} {1, 2, 3, 4} {3}

#형식) set객체명.update(데이터 항목)
b.update({6,7}) #리스트의 extend함수처럼 한꺼번에 여러개의 값을 저장시킬때 사용
print(b)#{3,4,6,7}
b.update([8,9]) #리스트형태로 값을 저장시킬 수 있다.
b.update({8,9}) #튜플도 가능
print('b=>',b,type(b)) #b=> {3, 4, 6, 7, 8, 9} <class 'set'>
b.add(10)#set객체명.add(추가할 항목) - 한개씩 저장시킬때 사용
#데이터 삭제->discard(삭제할 항목)
b.discard(7)
b.remove(6) #6,7삭제
print(b) #{3, 4, 8, 9, 10}
#변수명=[], 변수명=set()
c=set() #c의 자료형은 set타입형이다.
c=b;print(c) #빈객체에 내용 채우기
#리스트객체에서 중복된 데이터가 많으면 list->set->list 변환
li=[1,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
#set으로 변경시켜주는 함수->set(대상객체명)
s=set(li)
li=list(s)
print(li)#[1, 2, 3]



4. 딕셔너리 (Dictionary)

딕셔너리는 키-값 쌍으로 데이터를 저장. 순서가 없으며 키를 통해 값을 조회.

특징

1. 순서가 없다.
2. 키를 통해 값을 조회한다.

예제 ✍️

mydic=dict(k1=1,k2='abc',k3=3.4)
print('mydic->',mydic)

dic={'파이썬':'뱀','자바':'커피','스프링':'봄'}
print(dic);print(len(dic))
dic['데이터베이스']='오라클'
print(dic)
del dic['데이터베이스']
print(dic)

friend={'body':'테스트','test1':'테스트2','test2':'테스트3'}
print(friend);print(friend['test1'])
'''
키만 모아서 출력=>dic객체명.keys()=>list형태로 출력
값만 모아서 출력=>dic객체명.values()
'''
print('friend.keys()=>',friend.keys())
print('friend.values()=>',friend.values())
#찾는값 in dic객체명=>True or False
print('body' in friend)
print('test1' in friend)

for k in friend.keys():
    print(k,end=':')
print()

for k in friend.values():
    print(k,end=',')
profile
개발 꿈나무

0개의 댓글