여러개의 값을 담을 수 있는 변수이다.
대괄호[]로 구분하며, 리스트 함수는 글자를 하나하나 분리한다.
list1 = [1,2,3,4,5]
m=list('good')
print(m) # ['g', 'o', 'o', 'd']
list의 값을 읽어올 때에는
- 첫번째 값 list1[0]
- 두번째 값 list1[1]
- 뒤에서 첫번째 값 list1[-1]
- 뒤에서 두번째 값 list1[-2]
- 리스트에 들어있는 값 보다 큰 값을 읽어오려고 하면 err
- 위의 list1에서 list1[5] 또는 list1[-6]은 err
리스트를 만들 때에는
- li=[] : 대괄호를 사용하여 빈 리스트를 만든다.
- li=list() : 소괄호를 사용하되, 앞에 list임을 명시한다.
# 리스트 만들기
a = ['a', 'b','c']
b = list('abc')
print(a) # ['a', 'b','c']
print(b) # ['a', 'b','c']
# 리스트 인덱스
li = ['a', 'b','c']
print(li[0]) # a
print(li[1]) # b
print(li[2]) # c
li[2] ='d' # 리스트 값 변경 가능
print(li) # ['a', 'b', 'd']
# 값으로 항목 위치 찾기
li = ['a','b','c','d','e']
print(li.index('c')) # 리스트 li 에서 'c'의 위치 찾기 # 2
리스트 활용
리스트에 새로운 값을 추가할 때
# append를 이용
li = ['a','b','c','d','e']
li.append('f') # 리스트의 맨 끝에 추가하기
print(li) # ['a', 'b', 'c', 'd', 'e', 'f']
# 뒤에 새로운 리스트를 더하기
list1=[1,2,3]
list2=list1+[4] # list1은 그대로 두고, 새로운 리스트를 만들어 낸다.
print(list2) # [1,2,3,4]
# insert를 이용
li = ['a','b','c','d','e']
li.insert(0,'aa') # 원하는 위치에 추가하기
print(li) # ['aa', 'a', 'b', 'c', 'd', 'e']
# extend를 이용
# list.extend( [value1, value2] ) : 리스트 뒤에 값을 추가한다.
li = ['a','b','c','d','e']
li.extend( ['f', 'g'] )
print(li) # ['a', 'b', 'c', 'd', 'e', 'f', 'g']
리스에서 값을 지울 때
# remove를 이용(특정 값을 지우기)
# list1.remove(40)을 하면 리스트에 40이라는 값이 있을 경우 삭제한다.
# 여러개의 값이 있는 경우 가장 앞에 있는 하나만 지워진다.
li = ['aa','a','b','c','d','e']
li.remove('aa') # 값으로 항목 삭제
print(li) # ['a', 'b', 'c', 'd', 'e']
# del을 이용(특정 위치의 값을 지우기)
# del list1[10] 리스트의 10번째 값을 지운다.
li = ['a','b','c','d','e']
del li[2] # 인덱스로 삭제하기
print(li) # ['a', 'b', 'd', 'e']
리스트에 값이 들어있는지 확인할 때
# in연산을 이용
# 12라는 값이 리스트에 들어있는지 확인하는 코드
list1=[1,2,3]
n=12
if n in list1:
print('{}가 리스트에 있다.'.format(n))
li = ['a','b','c','d','e']
print('b' in li) # 'b'가 리스트 li에 있나요? # True
리스트의 전체 항목 개수 세기
li = ['a','b','c','d','e']
print(len(li)) # 5
리스트의 특정 항목 개수 세기
li = ['a','b','c','d','e']
print(li.count('a')) # 리스트 li에서 'a'가 몇 개인가? # 1
합 / 최대값 / 최소값
num = [1, 2, 3, 4, 5, 9, 8, 7, 6, 10]
print(sum(num)) # 합계 # 55
print(max(num)) # 최대값 # 10
print(min(num)) # 최소값 # 1
정렬 하기
- sort() : 리스트 자체를 내부적으로 오름차순으로 정렬한다.
- li.sort(reverse=True) : 내림차순으로 정렬한다.
- sorted : 리스트의 정렬된 복사본을 반환한다.
# sort() 오름차순 정렬
num = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
num.sort()
print(num) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# sort(reverse=True) 내림차순 정렬
num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
num.sort(reverse=True)
print(num) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
# reverse() 역순 만들기
num = [1,2,3,4,5,6,7,8,9,10]
num.reverse()
print(num) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
# sorted() 오름차순 정렬된 복사본
list1 = [2,4,9,3,6]
print(list1) # [2, 4, 9, 3, 6]
list2 = sorted(list1)
print(list2) # [2, 3, 4, 6, 9]
print(list1) # [2, 4, 9, 3, 6] # 원본은 그대로 있다.
리스트와 문자열
리스트와 문자열은 유사하여 서로 변환이 가능하다.
- list = str.split( ) : 문자열에서 리스트로
- " ".join( list ) : 리스트에서 문자열로
문자 입력받아 공백 기준으로 자르기
li = input('문자 입력: ').split() # 공백을 기준으로 잘라서 리스트로 만든다.
print(li)
문자 입력: aa bb cc
['aa', 'bb', 'cc']
문자 입력받아 전체 자르기
li = list(input('문자 입력: ')) # 문자 하나하나 잘라서 리스트로 만든다.
print(li)
문자 입력: aabbcc
['a', 'a', 'b', 'b', 'c', 'c']
숫자 입려받기
숫자 하나씩 입력받기
li = []
li.append(int(input('숫자 입력: ')))
li.append(int(input('숫자 입력: ')))
li.append(int(input('숫자 입력: ')))
print(li) # [1, 2, 3]
숫자 여러 개 입력받기
li = list(map(int,input('숫자 입력: ').split()))
print(li)
숫자 입력: 1 2 3
[1, 2, 3]
숫자 활용
합 / 평균
num = list(map(int, input('숫자 입력: ').split()))
print('합', sum(num))
print('평균', sum(num)/len(num))
숫자 입력: 65 23 76 99 12
합 275
평균 55.0
최대값 / 최소값
num = list(map(int, input('숫자 입력: ').split()))
print('최대값:', max(num))
print('최소값:', min(num))
숫자 입력: 99 10 25 60 30
최대값: 99
최소값: 10
# 위 아래 값은 같다.
num = list(map(int, input('숫자 입력: ').split()))
num.sort() # 정렬
print('최대값:', num[len(num)-1]) # 정렬되었을 때 가장 끝에 있는 값이 최대값
print('최소값:', num[0]) # 정렬되었을 때 맨 앞에 있는 값이 최소값
숫자 입력: 99 10 25 60 30
최대값: 99
최소값: 10
중간값
num = list(map(int, input('숫자 입력: ').split()))
num.sort() # 정렬
print(num)
print('중간값:', num[len(num)//2]) # 정렬되었을 때 전체 개수 나누기 2
숫자 입력: 99 10 25 60 30
[10, 25, 30, 60, 99]
중간값: 30
Slice
리스트나 문자열에서 값을 여러개 가져오는 기능이다.
slice를 하면 해당하는 부분의 리스트나 문자열을 새로 만들어 준다.
- list[ 2: ] : 2번째부터 끝까지 반환
- list[ : 2 ] : 처음부터 2번째 까지 반환
- list[ : ] : 처음부터 끝까지 전부 반환
text = "hello world"
text = text[ 1:5 ]
print(text) # ello
list = [ 0, 1, 2, 3, 4, 5 ]
list = list[ 1:3 ]
print(list) # [1, 2]
Slice의 step
- slice한 값의 범위에서 step 값을 주어 그 값만큼 건너뛰어 가져오는 기능
- list[ 시작값:끝값:step ]
list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list[2:8:2]
plint(list) # [3, 5, 7]
list1 = list(range(20)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
# reverse_list가 17, 13, 9, 5의 값을 가지도록 list1을 slice한다.
reverse_list = list1[17:4:-4]
print(reverse_list) # [17, 13, 9, 5]
Slice로 리스트 수정하기
numbers = list(range(10)) # [0,1,2,3,4,5,6,7,8,9]
del numbers[0]
print(numbers) # [1,2,3,4,5,6,7,8,9]
del numbers[:5]
print(numbers) # [6,7,8,9]
numbers[1:3] = [77,88]
print(numbers) # [6,77,88,9]
numbers[1:3] = [77,88,99] # 자릿수 상관없이 넣을 수 있다.
print(numbers) # [6,77,88,99,9]
numbers[1:4] = [8]
print(numbers) # [6,8,9]
리스트와 for문
# for 문으로 리스트에 값 추가
li = []
for i in range(5):
li.append(int(input('숫자 입력:')))
print(li)
숫자 입력:1
숫자 입력:2
숫자 입력:3
숫자 입력:4
숫자 입력:5
[1, 2, 3, 4, 5]
# for 문으로 리스트의 값 출력
li = [1,2,3,4,5]
for i in range(len(li)):
print(li[i]) # 리스트의 인덱스로 접근
1
2
3
4
5
li = [1,2,3,4,5]
for i in li: # 리스트에 있는 항목으로 접근
print(i, end=' ')
1 2 3 4 5
리스트와 if문
# 리스트의 항목 중 짝수출력 하기
li = [1,2,3,4,5,6,7,8,9,10]
for i in range(len(li)):
if li[i]%2==0: # 리스트의 인덱스로 접근
print(li[i])
2
4
6
8
10
li = [1,2,3,4,5,6,7,8,9,10]
for i in li: # 리스트에 있는 항목으로 접근
if i%2==0:
print(i, end=' ')
2 4 6 8 10
리스트와 분리하기
# 문자열를 입력받아서 대문자 리스트, 소문자 리스트 만들기
li = list(input('문자 입력:'))
up = [] # 대문자 리스트
low = [] # 소문자 리스트
for i in li:
if i.isupper(): # 대문자인 경우
up.append(i) # up 리스트에 추가
elif i.islower(): # 소문자인 경우
low.append(i) # low 리스트에 추가
print(up)
print(low)
문자 입력:asdfAVVBBDds
['A', 'V', 'V', 'B', 'B', 'D']
['a', 's', 'd', 'f', 'd', 's']
'PYTHON' 카테고리의 다른 글
논리연산 더 알아보기, 인스턴스, 클래스, 메소드, 상속, super(), 예외 만들기 (2) | 2022.12.29 |
---|---|
날짜와 시간(datetime, timedelta), 예외 처리(try except, raise) (0) | 2022.12.25 |
함수 이해하기, import 모듈 (0) | 2022.12.25 |
Tuple, Comprehension, Set, Dictionary (4) | 2022.12.22 |
Hello PYTHON 기초 문법; (1) | 2022.12.06 |