728x90
리스트의 형식과 사용되는 빌트인기능들을 알아보자
좀 길다..!
내용이 많긴 하지만 리스트와 리스트빌트인 함수 설명서 라고 생각하고 적었다.
각 예시들과 설명이 있다..!
1 리스트 만드는 법( , 로 구분)
# 리스트 이름 = [요소1,요소2,요소3....]
list1 = [1,2,3,4] # [1,2,3,4]
list2 = ["Hello","List","Test"] # ["Hello","List","Test"]
list3 = [1,2,["Hello","List","Test"]] # [1,2,["Hello","List","Test"]]
2 리스트 요소에 인덱스 번호를 이용하는 방법
a0 = [1,2,3]
print(a0) # [1,2,3]
print(a0[0]) # 1
print(a0[1]) # 2
print(a0[2]) # 3
3 리스트 안에 리스트를 넣기
a1 = [1,2,["a","b","c"]]
print(a1) # [1,2,["a","b","3"]]
print(a1[0]) # 1
print(a1[1]) # 2
print(a1[2]) # ["a","b","c"]
print(a1[2][0]) # [a]
print(a1[2][1]) # [b]
print(a1[2][2]) # [c]
4 리스트의 길이를 계산
a3 = [1,2,3]
print("len(a3) : %d" % len(a3)) # a3 리스트 안에 값이 3개이므로 3
b = [1,2,3,["a","b"]] # len() 은 리스트의 길이를 알려줌.
print("len(b) : %d" % len(b)) # b 리스트 안에 리스트는 하나의 값으로 인식. 1,2,3,리스트 따라서 값은 4
print("len(b[3]): %d" % len(b[3])) # b 리스트의 인덱스 3번은 리스트이므로 리스트 길이 출력, 값은 2
5 리스트에 반복문 활용
a4 = [1,2,3]
print("len(a4) : %d" % len(a4)) # a4의 길이를 계산 -> 3
for i in range(0,len(a4)): # for문 0부터 a4의 길이까지 반복 -> (0,4)
print("%d" % a4[i], end=" ") # 출력 a4[i] a4의 길이가 i만큼 반복할때,
print() # 인덱스 번호 0부터 3까지의 값을 출력.
6 리스트에 요소 수정과 추가
a5 = [1,2,3]
a5[1] = 10 # a5의 인덱스 1번을 10으로 수정.
a5 = a5 + [100,200] # a5에 + 리스트 [100,200] 을 추가.
for i in range(0, len(a5)): # 0부터 a5 의 길이만큼 -> 0,5
print("%d" % a5[i], end = " ") # a5의 0부터4까지 인덱스 번호의 값을 출력.
b5 = "hello" # 1,10,3,[100,200]"hello world"
b5 = b5 + " world"
print(b5)
7 리스트에 연속된 요소 수정하기
#[n:m] -> n ~ m 요소에 리스트 수정(m은 포함 안함). 뒤의 값은 밀림.
#[n:] -> n부터 리스트를 덮어 씀.
#[:n] -> n이전 리스트를 수정.
a6 = [1,2,3]
print("len (a6) : %d" % len(a6)) # a6 len-> 3
a6[1:2] = 11, 22, 33, 44 # a6에 인덱스 번호 1부터2까지, 2는 포함 안하니 값은 2번째 인덱스에 11,22,33,44로 수정
a6 = a6 + [100, 200] # 리스트 더하기
for i in range(0, len(a6)):
print("%d" % a6[i], end = " ") # 출력값-> 1 11 22 33 44 3 100 200
print()
8 2차원 리스트
a7 = [
[1,2,3],
[4,5,6],
[7,8,9],
]
for i in range(0,len(a7)):
for j in range(0,len(a7)):
print("%d" % a7[i][j], end = " ") # i 는 세로 j는 가로
print()
9 리스트 요소 삭제하는 법(인덱스번호를 이용한 삭제)
a8 = [1,2,3]
b8 = [4,5,6]
a8[0:1] = [] # 인덱스 0번 삭제.
del b8[1] # b의 인덱스 1번 삭제.
print(a8, b8) #[2,3], [4,6]
10 리스트에 객체 추가기능
a9 = [1,2,3]
a9.append(4) # .append() -> 객체를 추가하는 기능.
print(a9) # [1,2,3,4]
a9.append([5,6] # 리스트 추가
print(a9) # [1,2,3,4,[5,6]]
a9.append("hello") # 문자추가
print(a9) #[1,2,3,4,[5,6],hello]
10-1 오름차순 정렬
a9_1 = [4,3,7,6,2]
a9_1.sort() # .sort() -> 오름차순 정렬[2, 3, 4, 6, 7]
print(a9_1)
10-2 내림차순 정렬
a9_2 = [4,3,7,6,2]
a9_2.sort(reverse=True) # .sort(reverse=True) -> 내림차순 정렬[7, 6, 4, 3, 2]
print(a9_2)
10-3 리스트 뒤집기. 정렬이 아닌 리스트의 순서를 반대로 만든다
a9_3 = [4,3,7,6,2]
a9_3.reverse() # .reverse() -> 리스트 뒤집기[2, 6, 7, 3, 4]
print(a9_3)
10-4 리스트에서 요소 위치 얻기
a9_4 = [4,3,7,6,2]
i = a9_4.index(3) # .index() -> 리스트 안에 "3" 의 인덱스위치 얻기. 값 = 1
print(i)
i = a9_4.index(4) # 위치 0
print(i)
10-5 리스트에 요소 삽입하기
a9_5 = [4,3,7,6,2]
a9_5.insert(1,10) # 인덱스 1번에 10 을 추가한다. -> [4, 10, 3, 7, 6, 2]
print(a9_5)
a9_5.insert(1,11) # 인덱스 1번에 10 을 추가한다. -> [4, 11, 10, 3, 7, 6, 2]
print(a9_5)
10-6 리스트에 요소 제거(직접 요소를 찾아 삭제) 또는 꺼내기.
a9_6 = [4,3,7,6,2]
a9_6.remove(7) # .remove 는 리스트에서 찾은 값 하나 삭제(반환없음)
print(a9_6) # [4, 3, 6, 2]
a9_6_pop = a9_6.pop() # pop은 리스트에서 찾은 값을 삭제하고 반환한다.()에 값이 없으면 맨 뒤 요소 삭제, 반환
print(a9_6_pop) # 2
10-7 리스트에 요소 갯수 찾기
a9_7 = [4,3,7,6,2,4,7,4,2]
cnt_a9_7 = a9_7.count(4) # .count(4) -> 요소에서 (4) 의 갯수를 찾아라.
print(cnt_a9_7) # 3
자자 여기까지 봤다면 고생했다..!
예제 문제들을 통해 어떻게 사용하는지 보자.
base_list = [10,17,3,9,27,10,8,9,13,21]
#1 리스트에 거꾸로 입력하기
base_list.reverse()
invert_list = base_list
print(invert_list)
#2 짝수번째 내용의 합과 홀수번째 내용합 구하기
num = 0
num1 = 0
for i in range(0, len(base_list)):
if i % 2 == 0 :
num += base_list[i]
else:
num1 += base_list[i]
print(f"짝수합 : {num}, 홀수합 : {num1}")
#3 srot_list라는 리스트에 내림차순으로 정렬
base_list.sort(reverse=True)
sort_list = base_list
print(sort_list)
#4 rank_list 에 높은숫자가 1등이 되게하여 순위 입력
for i in range(0,len(sort_list)):
print(f"{i+1}등 {sort_list[i]}")
밑은 출력결과!
출력결과 1
[21, 13, 9, 8, 10, 27, 9, 3, 17, 10]
출력결과 2
짝수합 : 66, 홀수합 : 61
출력결과 3
[27, 21, 17, 13, 10, 10, 9, 9, 8, 3]
출력결과 4
1등 27
2등 21
3등 17
4등 13
5등 10
6등 10
7등 9
8등 9
9등 8
10등 3
이상 리스트의 사용법과 예제들을 살펴봤다!
728x90
'Python 파이썬' 카테고리의 다른 글
튜플(Tuple)과 딕셔너리(Dictionary) (1) | 2023.10.20 |
---|---|
난수(random), 로또번호, 랜덤모듈 (1) | 2023.10.16 |
리스트(list) (0) | 2023.10.16 |
람다(lamda)함수 (0) | 2023.10.16 |
프로그램의 구성, 힙(heap)영역, 스텍(stack)영역, LEGB 규칙 (0) | 2023.10.16 |