티스토리 뷰
* 컬렉션 타입이란?
여러 개의 데이터 항목을 하나의 단위로 관리할 수 있게 해주는 데이터 구조.
ex) 리스트, 튜플, 세트, 딕셔너리
1. 리스트 (List)
여러 값들을 하나의 변수에 저장하고 관리할 수 있게 해주는 순차적인 자료구조.
#리스트 선언
list1 = [1, 3, 5, 7, 9] # 리스트를 만들 때 주로 사용
list2 = list([1, 2, 3, 4, 5]) # 다른 자료구조를 리스트형태로 바꿀 때 많이 사용
list6 = [1, 2, 3, ['김사과', '오렌지', '반하나', ['🏀', '⚽️', '🎾', '🎱']]]
print(list6[2]) # 결과 : 2
print(list6[-1]) # 결과 : ['김사과', '오렌지', '반하나', ['🏀', '⚽️', '🎾', '🎱']]]
print(list6[-1][-2]) # 결과 : 반하나
print(list6[-1][-1][-1]) # 결과 : 🎱
list1 = [10, 20, 30, 40, 50]
print(list1)
print(list1[0:3]) # 0부터 3전까지 (0, 1, 2번째)
list2 = list1
print(list2)
list2[0] = 100
print(list2)
print(list1) # list1도 같이 바뀌어 있음
list4 = [10, 20, 30, 40, 50]
list4[1:2] = ['🏀', '⚽️', '🎾', '🎱'] # 슬라이싱을 이용하여 요소를 추가한 경우 리스트에 데이터만 포함
print(list4) # 결과 : [10, '🏀', '⚽️', '🎾', '🎱', 30, 40, 50]
list4[1] = ['🏀', '⚽️', '🎾', '🎱'] # 인덱싱을 이용하여 요소를 추가한 경우 리스트를 만들고 포함
print(list4) # 결과 : [10, ['🏀', '⚽️', '🎾', '🎱'], '⚽️', '🎾', '🎱', 30, 40, 50]
list5 = [100, 20, 30, 40, 50]
list5[1:3] = [] # 빈 리스트를 저장하면 해당 요소가 삭제됨
list6 = [10, 20, 30]
list6 = list6 + [100, 200] # 더하는 게 아니고 추가됨
list6 += [100, 200] # 위랑 같은 의미
print(list6 * 3) # 3번 반복
# len : 객체의 길이를 반환하는 파이썬의 내장 함수
list6 = [10, 20, 30]
print(len(list6)) # 결과 : 3
# append : list에 사용되며, 리스트 끝에 새로운 요소를 추가하는 메서드
list6.append(40)
# list6.append(200, 300) Error : list.append() takes exactly one argument (2 given)
list6.append([200, 300]) # 리스트안의 리스트형태로 추가됨
# extend() : 리스트에 여러 요소를 추가, 순서대로 차곡차곡
list6.extend([50])
list6.extend([100, 200, 300]) # 리스트로 추가되지 않고 요소로 추가됨
# pop() : 리스트 마지막 요소를 삭제하고 삭제된 요소를 반환
list6 = [10, 20, 30]
temp = list6.pop()
print(list6) #결과 : [10, 20]
print(temp) #결과 : 30
# insert() : 리스트의 특정 인덱스에 요소를 한개만 추가
list6 = [10, 20, 30]
list6.insert(1, 100)
print(list6) #결과 : [10, 100, 20, 30]
list6.insert(2, [1000, 2000])
print(list6) #결과 : [10, 100, [1000, 2000], 20, 30]
# index() : 리스트에서 특정 값의 인덱스를 반환
list6 = [10, 20, 30]
print(list6.index(20)) # 결과 : 1
#print(list6.index(100)) Error : 100 is not in list
# reverse() : 리스트의 요소들의 순서를 반대로 변경, 오름/내림차순 아님
list7 = [100, 50, 70, 60, 20]
list7.reverse()
print(list7) # 결과 : [20, 60, 70, 50, 100]
# 슬라이싱을 사용하여 리스트의 순서를 뒤집는 방법
# [start:stop:step]
# start 생략시 -1로 간주
# stop 생략시 0으로 간주
list7 = [100, 50, 70, 60, 20]
print(list7[ : : -1]) #결과 : [20, 60, 70, 50, 100]
# sort() : 리스트의 요소를 정렬
list7 = [100, 50, 70, 60, 20]
list7.sort() #기본 오름차순
list7.sort(reverse=True) # 내림차순
list8 = ['Apple', 'apple', 'orange', 'banana', 'melon']
list8.sort()
print(list8) #결과 : ['Apple', 'apple', 'banana', 'melon', 'orange'] 아스키코드 순서
# sorted() : 모든 요소를 정렬한 후 반환해주는 함수
#.sort()는 list에서만 사용할 수 있고(메서드) 값을 inplace함
list7 = [100, 50, 70, 60, 20]
result = sorted(list7) # 오름차순, 변수에 저장해주어야 함
print(result)
result2 = sorted(list7, reverse=True) # 내림차순
print(result2)
# count() : 리스트에서 특정 요소의 개수를 반환
list10 = [10, 20, 30, 50, 20, 40, 30, 20]
print(list10.count(20)) #결과 : 3
print(list10.count(100)) #결과 : 0
2. 튜플 (Tuple)
여러 가지 데이터 타입의 값을 저장할 수 있는, 변경 불가능한 순서가 있는 데이터 구조.
# 튜플 선언 방법
tu1 = (1,) # 요소가 1개일 경우 끝에 콤마를 붙여야 함
tu2 = (1, 3, 5, 7)
tu3 = tuple([1, 3, 5, 7])
tu4 = 1, 3, 5, 7
tu5 = ('apple', 'banana', ('⚽️', '🏀'))
print(tu5[1]) #type : str
print(tu5[2]) #type : tuple
print(tu5[2][0]) #type : str
# 튜플 요소 변경
tu5 = ('apple', 'banana', ('⚽️', '🏀'))
# tu5[0] = 'orange' # tuple 특성상 요소 변경이 안됨
tu5 = ('apple', 'banana', ['⚽️', '🏀'])
tu5[2][0] = '🥎' #리스트라서 변경 가능
#tu5[2] = '🥎' # tuple의 요소를 바꾸는 것이라 불가능
# 요소 추가, 반복 가능
tu1 = (10, 20, 30)
tu2 = (40, 50, 60)
print(tu1 + tu2)
print(tu2 + tu1) # 리스트와 동일한 결과
tu1 = tu1 + (10, 20)
print(tu1 * 3)
# in 연산자
print(2 in (2, 4, 6, 8, 10)) #True
print(3 in (2, 4, 6, 8, 10)) #False
# 튜플의 정렬
tu1 = (10, 30, 20, 70)
# tu1.sort() -> sort()는 inplace되기 때문에 tuple에는 sort메서드가 없음
tu1 = sorted(tu1) #리스트로 형이 바뀜
tu1 = tuple(tu1) #다시 tuple로 묶어주기
print(type(tu1))
# input 함수 : 사용자에게 데이터를 입력받는 함수 (문자형으로 입력됨)
name, age, weight = input('이름, 나이, 몸무게를 띄어쓰기로 구분하여 입력하세요 : ').split(' ')
# 결과 : 이름, 나이, 몸무게를 띄어쓰기로 구분하여 입력하세요 : 홍길동, 20, 60
print(name, age, weight) #결과 : 홍길동, 20, 60
# 예제
- 국어, 영어, 수학점수를 입력받아 총점, 평균을 구하는 프로그램 작성
- 단, 입력방법은 100/70/85 형태로 입력
(내 풀이)
kor = int(input('국어 점수 : '))
eng = int(input('영어 점수 : '))
math = int(input('수학 점수 : '))
total = kor+eng+math
avg = total/3
# 결과
국어 점수 : 100
영어 점수 : 70
수학 점수 : 85
print('총점 : {}, 평균 : {}'.format(total, avg))
#결과
총점 : 255, 평균 : 85.0
(다른 풀이)
kor, eng, math = input('국어, 영어, 수학점수 입력(/로 구분) : ').split('/')
print(f'총점 : {int(kor) + int(eng) + int(math)}')
print(f'평균 : {(int(kor) + int(eng) + int(math))/3}')
print('평균 : %.2f' % ((int(kor) + int(eng) + int(math))/3))
# 결과
국어, 영어, 수학점수 입력(쉼표로 구분) : 100,70,80
총점 : 250
평균 : 83.33333333333333
평균 : 83.33
'Python' 카테고리의 다른 글
8. 파이썬의 제어문 - 조건문, 반복문 (0) | 2024.03.18 |
---|---|
6. 파이썬의 컬렉션 타입 - 세트, 딕셔너리 (0) | 2024.03.18 |
4. (과제1) 실수 연산에 관하여 (0) | 2024.03.12 |
3. 파이썬의 출력, 변수, 문자열 (0) | 2024.03.12 |
2. 구글 코랩(Colab)이란 (0) | 2024.03.11 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 박스사이징
- 상대위치
- DB단어장
- MySQL
- 파이썬SQL연동
- animation적용
- HTML
- CSS
- FOR
- 로또번호생성
- 클래스문
- 변수
- 닷홈
- 폼
- JavaScript
- __call__
- MySQLdb
- DB프로그램만들기
- html이론
- 셋
- 줄 간격
- 솔로의식탁
- 출력
- trasform
- EPL정보프로그램
- 리스트
- 절대위치
- Enclosing
- 고정위치
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함