
배열과 같이 여러개의 데이터를 나열한 자료구조
[]를 이용해서 선언, 데이터 구분은 , 를 이용한다.(숫자, 문자(열), 논리형등 모든 기본데이터를 저장할 수 있다.)
students = ['홍길동', '이철수', '김영희', '박찬호', '이용규']
아이템에 자동으로 부여되는 번호표
students = ['홍길동', '이철수', '김영희', '박찬호', '이용규']
print(students[0]) # 홍길동
print(students[1]) # 이철수
...
print(students[4]) # 이용규
print(students[5]) # Error
리스트에 저장된 아이템개수 : 리스트 길이
students = ['홍길동', '이철수', '김영희', '박찬호', '이용규']
print(len(students)) # 5
문자열도 가능
str = 'Hello python!!'
print(len(str)) # 14
for문을 이용하면 리스트에 아이템을 자동으로 조회할 수 있다.
cars = ['그랜저', '페라리', '포르쉐', '벤틀리', '람보르기니']
for i in range(len(cars)):
print(cars[i])
for car in cars:
print(car)
리스트 안에 리스트로 조회 가능하다.
studentsCnts = [[1,19], [2,30], [3,11], [4,17], [5,20]]
for i in range(len(studentsCnts)):
print('{}학급 학생수: {}'.format(studentsCnts[i][0], studentsCnts[i][1]))
for classNo, cnt in studentsCnts:
print('{}학급 학생수: {}'.format(classNo, cnt))
while문을 이용하면 리스트에 아이템을 자동으로 조회할 수 있다.
cars = ['그랜져', '소나타', '마티즈', '페라리', '벤틀리']
n = 0
while n < len(cars):
print(cars[n])
n += 1
minScore = 60
score = [['국어', 58],
['영어', 77],
['수학', 89],
['과학', 99],
['국사', 50]]
n = 0
while n < len(score):
if score[n][1] >= minScore:
n += 1
continue
print('과락과목 : {}, 점수: {}'.format(score[n][0], score[n][1]))
n += 1
enumerate()함수를 이용하면 아이템을 열거할 수 있다
sports = ['농구', '축구', '수영', '마라톤', '테니스']
for idx, value in enumerate(sports):
print('{} : {}'.format(idx, value))
0 : 농구
1 : 축구
2 : 수영
3 : 마라톤
4 : 테니스
마지막 인덱스에 아이템을 추가할 수 있다.
sports = ['농구', '축구', '수영', '마라톤', '테니스']
sports.append('배드민턴')
print(sports)
# ['농구', '축구', '수영', '마라톤', '테니스', '배드민턴']
특정위치(인덱스)에 아이템을 추가할 수 있다.
sports = ['농구', '축구', '수영', '마라톤', '테니스']
sports.insert(3, '배드민턴')
print(sports)
# ['농구', '축구', '수영', '배드민턴', '마라톤', '테니스']
마지막 인덱스에 해당하는 아이템을 삭제할 수 있다.
numbers = [2,4,8,11,17,26,30,55]
numbers.pop()
print(numbers)
# [2, 4, 8, 11, 17, 26, 30]
selectNum = numbers.pop() # 삭제된 아이템을 쓸 수 있다
print(selectNum) # 55
n위치에 있는 특정위치에 아이템을 삭제할 수 있다.
numbers = [2,4,8,11,17,26,30,55]
numbers.pop(2)
print(numbers)
# [2, 4, 11, 17, 26, 30, 55]
playerScore = [9.5, 8.9, 9.2, 9.8, 8.8, 9.0]
print(playerScore)
minScore = 0; maxScore = 0
minScoreIdx = 0; maxScoreIdx = 0
for idx, score in enumerate(playerScore):
if idx == 0 or minScore > score:
minScoreIdx = idx
minScore = score
if maxScore < score:
maxScoreIdx = idx
maxScore = score
print('minScore: {}, minScoreIdx: {}'.format(minScore, minScoreIdx))
print('maxScore: {}, maxScoreIdx: {}'.format(maxScore, maxScoreIdx))
playerScore.pop(minScoreIdx)
playerScore.pop(maxScoreIdx)
print(playerScore)
특정 아이템을 삭제할 수 있다.
students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
students.remove('이용규')
print(students)
# ['홍길동', '박찬호', '강호동', '박승철', '김지은']
한개의 아이템만 삭제 가능하다.(삭제 데이터가 2개 이상이라면 while문 사용)
students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '박찬호']
while '박찬호' in students:
students.remove('박찬호')
print(students)
리스트에 또 다른 리스트를 연결(확장)할 수 있다.
A.extend(B) = A # A의 확장
group1 = ['홍길동', '박찬호', '이용규']
group2 = ['강호동', '박승철', '김지은']
group1.extend(group2)
print(group1) #['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
print(group2) #['강호동', '박승철', '김지은']
덧셈 연사자를 이용하여 연결할 수 있다.
A + B = C 새로운 리스트의 탄생
result = group1 + group2
print(result) # ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
print(group1) # ['홍길동', '박찬호', '이용규']
print(group2) # ['강호동', '박승철', '김지은']
아이템을 정렬할 수 있다.
오름차순 : sort(reverse=False) < 기본값
내림차순 : sort(reverse=True)
students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
print(students)
students.sort()
print(students)
# ['강호동', '김지은', '박승철', '박찬호', '이용규', '홍길동']
아이템의 순서를 뒤집을 수 있다.
students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
students.reverse()
print(students)
# ['김지은', '박승철', '강호동', '이용규', '박찬호', '홍길동']
리스트슬라이싱 : 리스트에서 원하는 아이템만 뽑아낼수 있다.
n <= x < m
students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
print(students[2:4]) # ['이용규', '강호동']
print(students[:4]) # ['홍길동', '박찬호', '이용규', '강호동']
print(students[2:]) # ['이용규', '강호동', '박승철', '김지은']
print(students[2:-2]) # ['이용규', '강호동']
슬라이싱을 이용해 아이템을 변경할 수 있다.
slice()함수로 슬라이스 이용할 수 있다.
students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
print(students[slice(2,4)]) # ['이용규', '강호동']
print(students[slice(2, len(students))]) # ['이용규', '강호동', '박승철', '김지은']
print(students[slice(len(students)-5, len(students)-2)]) # ['박찬호', '이용규', '강호동']
리스트를 곱셈연산하면 아이템이 반복된다.
students = ['홍길동', '박찬호', '이용규']
print(students * 2) # ['홍길동', '박찬호', '이용규', '홍길동', '박찬호', '이용규']
index(item) 함수를 item의 인덱스를 알아낼 수 있다.
students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '이용규']
searchIdx = students.index('이용규', 3, 6) # 인덱스3~6사이에 이용규의 인덱스를 찾는다.
print(searchIdx) # 5
특정 아이템의 개수를 알아낼 수 있다.
students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은', '강호동']
searchCnt = students.count('강호동')
print(searchCnt) # 2
del 키워드를 이용하면 특정 아이템을 삭제할 수 있다.
students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은', '강호동']
print(students)
del students[1:4]
print(students) # ['홍길동', '박승철', '김지은', '강호동']
이글은 제로베이스 데이터 취업스쿨의 강의자료 일부를 발췌하여 작성되었습니다.