파이썬의 리스트는 대괄호 사이에 쉼표로 구분된 값들로 표현한다.
- 일차원 리스트
A = ['a', 'b', 'c', 'd', 'e']
B = ['가', '나', '다', '라', '마']
print(A) # ['a', 'b', 'c', 'd', 'e']
print(B) # ['가', '나', '다', '라', '마']
- 이차원 리스트
A = [['a','b'], ['c','d'],['e','f']]
print(A) # [['a', 'b'], ['c', 'd'], ['e', 'f']]
print(A[0]) # ['a', 'b']
print(A[0][0]) # a
리스트 값 저장
- append() 내장함수 사용 : 마지막 인덱스에 추가
A = []
# 리스트 값 추가
A.append("a")
A.append("b")
A.append("c")
A.append("d")
A.append("e")
print(A) # ['a', 'b', 'c', 'd', 'e']
- insert( idx, ‘value’) : 원하는 인덱스에 배열로 추가
A = ['a', 'b', 'c', 'd', 'e']
A.insert(2, "F")
print(A) # ['a', 'b', 'F', 'c', 'd', 'e']
이차원 리스트 값 저장
- append( [’value’] ) : 마지막 인덱스에 추가
A = [['a','b'], ['c','d'],['e','f']]
A.append(['g','h'])
print(A) # [['a', 'b'], ['c', 'd'], ['e', 'f'], ['g', 'h']]
- insert( idx, [‘value’] ) : 원하는 인덱스에 배열로 추가
A = [['a','b'], ['c','d'],['e','f']]
A.insert(1,['g','h'])
print(A) # [['a', 'b'], ['g', 'h'], ['c', 'd'], ['e', 'f']]
A[i].insert(1,'A')
print(A) # [['a', 'b'], ['g','A','h'], ['c', 'd'], ['e', 'f']]
리스트 값 제거
- pop() : 값을 삭제하고 삭제한 값 반환
A = ['a', 'b', 'c', 'd', 'e']
# pop()
# 기본 인덱스 -1 (맨 뒤에 값)
print(A.pop()) # e 반환
print(A) # ['a', 'b', 'c', 'd']
# 인덱스 지정 삭제
print(A.pop(0)) # a 반환
print(A) # ['b', 'c', 'd']
- remove() : 특정값 지정. 리스트에서 첫 번째 값 제거. 리스트 전체 동일한 값 제거는 아님
A = ['a', 'b', 'b', 'c', 'd']
# 특정값 지정. 리스트에서 첫 번째 값 제거
print(A.remove('b')) # None 삭제한 값 반환하지 않음
print(A) # ['a', 'b', 'c', 'd'] 1번째 b 만 삭제됨
- del() : 특정 인덱스 지정 삭제. 여러 인덱스 지정 가능
A = ['a', 'b', 'c', 'd', 'e']
# 특정 인덱스 지정 삭제. 여러 인덱스 지정 가능
del A[0]
print(A) # ['b', 'c', 'd', 'e']
del A[1:3]
print(A) # ['b', 'e']
▷ 리스트 값 뒤집기 이전 글 참고
▷ 리스트 배열 복사 이전 글 참고
▶ 리스트 연습 백준 문제 풀이
https://www.acmicpc.net/problem/5597
inputRow = [input() for _ in range(28)]
rtn = []
for i in range(1, 31):
if (inputRow.count(str(i)) == 0):
rtn.append(i)
rtn.sort()
print(*rtn, sep="\n")
▶ 이차원 배열 연습 백준 문제 풀이
https://www.acmicpc.net/problem/10250
T = int(input())
tData = [input().split(" ") for _ in range(0, T)]
rtn = []
for i in range(0, T):
H = int(tData[i][0]) #호텔의 층 수
W = int(tData[i][1]) #각 층의 방 수
N = int(tData[i][2]) #몇 번째 손님
if N % H == 0: #층 꼭대기이면
line = N // H
floor = H
else:
line = (N // H) + 1 #몇 호 라인인지
floor = N - (H * ( N // H )) #몇 층인지
#floor = N - (H * (line - 1)) #몇 층인지
ho = str(floor) + str(line).zfill(2)
rtn.append(ho)
print(*rtn, sep="\n")
☞ 파이썬 자습서 참고 사이트
https://docs.python.org/ko/3/tutorial/introduction.html#lists
'코딩라이브러리 > 파이썬' 카테고리의 다른 글
파이썬 for while 조건문 (with 백준 2446, 2522) (2) | 2024.05.23 |
---|---|
파이썬 리스트 배열의 얕은 복사(copy), 깊은 복사(deepcopy) 차이점 (0) | 2024.05.22 |
파이썬 if문 조건 여러개 다중 처리 배열 비교 (with 백준 1330) (0) | 2024.05.21 |
파이썬 문자열 formatter string (with 백준 2739) (0) | 2024.05.20 |
파이썬 문자열 거꾸로 해보기 (with 백준 1251 6438) (0) | 2024.05.19 |