대표적인 자료구조는 리스트(list), 튜플(tuple), 딕셔너리(dict), 세트(set) 가 있다.
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
print('students: {}'.format(students))
# students: ['홍길동', '박찬호', '이용규', '박승철', '김지은']
numbers = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print('numbers: {}'.format(numbers))
# numbers: [10, 20, 30, 40, 50, 60, 70, 80, 90]
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
print(students[0]) # 홍길동
print(students[1]) # 박찬호
print(students[2]) # 이용규
print(students[3]) # 박승철
print(students[4]) # 김지은
numbers = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(numbers[0]) # 10
print(numbers[1]) # 20
print(numbers[5]) # 60
print(numbers[7]) # 80
print(numbers[8]) # 90
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
sLen = len(students)
for i in range(sLen):
print(students[i])
# len() 은 문자열 길이 확인도 가능
str = "Hello Python!"
print(len(str)) # 13
cars = ['그랜저', '소나타', '말리부', '카니발', '쏘렌토']
for i in range(len(cars)):
print(cars[i])
for car in cars:
print(car)
studentCnts = [[1,19],[2,20],[3,22],[4,18],[5,21]]
for i in range(len(studentCnts)):
print('{}학습 학생수: {}'.format(studentCnts[i][0], studentCnts[i][1]))
for classNo, cnt in studentCnts:
print('{}학습 학생수: {}'.format(classNo, cnt))
# 조건문과 함께 사용
minScore = 60
scores = [['국어', 58], ['영어',77],['수학',89],['과학', 99], ['국사', 50]]
for item in scores:
if item[1] < minScore:
print('과락 과목: {}, 점수: {}'.format(item[0], item[1]))
for subject, score in scores:
if score < minScore: continue
print('과락 과목: {}, 점수: {}'.format(subject, score))
cars = ['그랜저', '소나타', '말리부', '카니발', '쏘렌토']
n = 0
flag = True
while True:
print(cars[n])
n += 1
if n == len(cars):
flag = False
break
minScore = 60
scores = [['국어', 58], ['영어',77],['수학',89],['과학', 99], ['국사', 50]]
n = 0
while n < len(scores):
if scores[n][1] < minScore:
n += 1
continue
print('과락 과목: {}, 점수: {}'.format(scores[n][0], scores[n][1]))
n += 1
sports = ['농구', '수구', '축구', '마라톤', '테니스']
for idx, value in enumerate(sports):
print('{}: {}'.format(idx, value))
# 문자열에도 적용 가능
str = 'hello python!'
for idx, value in enumerate(str):
print('{}: {}'.format(idx, value))
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
print('students length: {}'.format(len(students))) # 5
print('last index: {}'.format(len(students) - 1)) # 4
students.append('유태오')
print('students: {}'.format(students))
# ['홍길동', '박찬호', '이용규', '박승철', '김지은', '유태오']
print('students length: {}'.format(len(students))) # 6
print('last index: {}'.format(len(students) - 1)) # 5
scores = [['국어', 88], ['영어', 91]]
print('scores length: {}'.format(len(scores))) # 2
print('last index: {}'.format(len(scores) - 1)) # 1
scores.append(['수학', 96])
print('scores: {}'.format(scores))
# [['국어', 88], ['영어', 91], ['수학', 96]]
print('scores length: {}'.format(len(scores))) # 3
print('last index: {}'.format(len(scores) - 1)) # 2
students = ['홍길동', '박찬호', '이용규', '박승철', '김지은']
students.insert(3, '유태오')
print('students: {}'.format(students))
# ['홍길동', '박찬호', '이용규', '유태오', '박승철', '김지은']
# 오름차순으로 된 숫자의 정렬 유지하며 사용자가 입력한 정수 추가
nums = [1, 3, 6, 11, 45, 54, 62, 74, 85]
inputNum = int(input('숫자 입력: '))
insertIdx = 0
for idx,number in enumerate(nums):
if insertIdx == 0 and inputNum < number:
insertIdx = idx
nums.insert(insertIdx, inputNum)
print('nums: {}'.format(nums))
# 20을 입력하면
# nums: [1, 3, 6, 11, 20, 45, 54, 62, 74, 85]
students = ['홍길동', '박찬호', '유태오', '이용규', '박승철', '김지은']
students.pop()
print('students: {}'.format(students))
# ['홍길동', '박찬호', '유태오', '이용규', '박승철']
remov = students.pop(3)
print('removed: {}'.format(remov))
# 이용규
print('students: {}'.format(students))
# ['홍길동', '박찬호', '유태오', '박승철']
students = ['홍길동', '유태오', '이종원', '송강', '권혁우', '이주연', '홍길동']
students.remove('홍길동')
print(students)
# ['유태오', '이종원', '송강', '권혁우', '이주연', '홍길동']
while '홍길동' in students:
students.remove('홍길동')
print(students)
# ['유태오', '이종원', '송강', '권혁우', '이주연']
group1 = ['유태오', '이종원', '송강']
group2 = ['권혁우', '이주연', '홍길동']
group1.extend(group2)
print(group1) # ['유태오', '이종원', '송강', '권혁우', '이주연', '홍길동']
print(group2) # ['권혁우', '이주연', '홍길동']
result = group1 + group2
print(group1) # ['유태오', '이종원', '송강']
print(group2) # ['권혁우', '이주연', '홍길동']
print(result) # ['유태오', '이종원', '송강', '권혁우', '이주연', '홍길동']
students = ['홍길동', '유태오', '이종원', '송강', '권혁우', '이주연']
students.sort()
# ['권혁우', '송강', '유태오', '이종원', '이주연', '홍길동']
students.sort(reverse=True)
# ['홍길동', '이주연', '이종원', '유태오', '송강', '권혁우']
num = [4, 52, 33, 81, 2.8, 1.7, 90, 2]
num.sort()
# [1.7, 2, 2.8, 4, 33, 52, 81, 90]
num.sort(reverse=True)
# [90, 81, 52, 33, 4, 2.8, 2, 1.7]
students= ['홍길동', '유태오', '이종원', '송강', '권혁우', '이주연']
students.reverse()
# ['이주연', '권혁우', '송강', '이종원', '유태오', '홍길동']
num = [2, 4, 6, 8, 3, 5]
num.reverse()
# [5, 3, 8, 6, 4, 2]
students= ['홍길동', '유태오', '이종원', '송강', '권혁우', '이주연']
print(students[1:3]) # ['유태오', '이종원']
print(students[:3]) # ['홍길동', '유태오', '이종원']
print(students[1:]) # ['유태오', '이종원', '송강', '권혁우', '이주연']
print(students[1:-3]) # ['유태오', '이종원']
num = [2, 4, 6, 8, 3, 5, 0.02, 2.5, 7.34]
print(num[::2]) # [2, 6, 3, 0.02, 7.34]
students= ['홍길동', '유태오', '이종원', '송강', '권혁우', '이주연']
print(students[slice(4)]) # ['홍길동', '유태오', '이종원', '송강']
print(students[slice(1, 4)]) # ['유태오', '이종원', '송강']
students = ['유태오', '이종원', '송강', '유태오']
print(students * 2) # ['유태오', '이종원', '송강', '유태오', '유태오', '이종원', '송강', '유태오']
print(students.index('유태오')) # 0
print(students.count('유태오')) # 2
del students[3]
print(students) # ['유태오', '이종원', '송강']
num = [2, 33, 52, 17]
print(num * 2) # [2, 33, 52, 17, 2, 33, 52, 17]
print(num.index(52)) # 2
print(num.count(33)) # 1
del num[2]
print(num) # [2, 33, 17]