# 요소 하나 추가 > append 사용
a = [1, 2, 3]
a.append(50)
print(a) # [1, 2, 3, 50]
b = [1, 2, 3]
b.append([4, 5]) # 원래 리스트에 [4, 5] 리스트가 하나의 요소로 추가된다.
print(b) # [1, 2, 3, [4, 5]]
# 요소 여러 개 추가 > extend 사용
a = [10, 20, 30]
a.extend([40, 50, 60])
print(a) # [10, 20, 30, 40, 50, 60]
a = [10, 20, 30]
a.insert(2, 500) # 2번 인덱스에 500이라는 요소를 추가
print(a) # [10, 20, 500, 30]
a = [10, 20, 30]
a.insert(len(a), 500) # 리스트 끝에 500이라는 요소를 추가
print(a) # [10, 20, 500, 30]
a = [10, 20, 30]
a.insert(5, 500) # 리스트의 마지막 인덱스보다 큰 값을 넣으면 리스트 끝에 요소가 추가된다.
print(a) # [10, 20, 500, 30]
a = [10, 20, 30]
a.insert(1, [40, 50]) # 1번 인덱스에 리스트가 하나의 요소로 추가된다.
print(a) # [10, [40, 50], 20, 30]
a = [10, 20, 30]
a[2:2] = [40, 50, 60] # 시작 인덱스와 끝 인덱스를 같게 지정한다.
print(a)
# a[len(a):] 와 같이 인덱스를 활용해 값을 추가할 때는 리스트 형태만 추가 가능하다.
# a[len(a):] = 40 이런 식으로는 추가 불가능!
# 인덱스 활용 > pop()
a = [10, 20, 30]
a.pop() # pop() > 마지막 요소를 삭제
print(a) # [10, 20]
a = [10, 20, 30]
a.pop(1) # 1번 인덱스를 삭제
print(a) # [10, 30]
a = [10, 20, 30]
del a[1] # 1번 인덱스를 삭제
print(a) # [10, 30]
# 값 활용 > remove()
a = [10, 20, 30]
a.remove(20) # 리스트에서 20을 찾아 삭제
print(a) # [10, 30]
a = [10, 20, 20, 20, 30]
a.remove(20) # 동일한 값이 여러 개 있을 경우 처음 찾은 요소만 삭제
print(a) # [10, 20, 20, 30]
a = [10, 20, 30, 40, 50, 60]
print(a.index(20)) # 1
# 같은 값이 여러 개인 경우 처음 찾은 인덱스를 구한다.
a = [10, 20, 20, 40, 50, 60]
print(a.count(20)) # 2
a = [10, 20, 20, 40, 50, 60]
a.reverse()
print(a) # [60, 50, 40, 20, 20, 10]
a = [10, 40, 20, 30, 70, 60]
a.sort() # 기존 리스트를 변경
print(a) # [10, 20, 30, 40, 60, 70]
a = [10, 40, 20, 30, 70, 60]
a = sorted(a) # 정렬된 새 리스트 생성
print(a) # [10, 20, 30, 40, 60, 70]
a = [10, 40, 20, 30, 70, 60]
a.clear()
print(a) # []
a = [10, 40, 20, 30, 70, 60]
del a[:]
print(a) # []
if not seq:
# 리스트가 비어 있으면 True
if seq:
# 리스트에 내용이 있으면 True
a = [1, 2, 3]
if a:
print(a[-1]) # 빈 리스트가 아닐 경우에만 마지막 요소를 출력
else:
print('리스트가 비어있습니다.')
# 결과 : 3
리스트를 다른 변수로 할당하면 두 개의 리스트가 생성될 것 같지만, 그렇지 않다. a 와 b는 같은 리스트(객체)를 가리키고 있다. 따라서 둘 중 하나의 리스트를 변경하면 리스트 a와 b에 모두 반영된다.
a = [1, 2, 3]
b = a
print(a is b) # True
b[1] = 4
print(a) # [1, 4, 3]
print(b) # [1, 4, 3]
리스트 a와 b를 완전히 두 개로 만들려면 copy메서드를 활용해서 모든 요소를 복사해야 한다. a와 b는 다른 객체가 되어, b를 변경하면 b에만 반영된다.
a = [1, 2, 3]
b = a.copy()
print(a is b) # False
print(a == b) # True, 복사된 요소는 모두 같으므로 True이다.
b[1] = 4
print(a) # [1, 2, 3]
print(b) # [1, 4, 3]
a = [38, 21, 53, 62, 19]
i = 0
while i < len(a): # 변수 i를 인덱스로 활용한다.
print(a[i])
i += 1
a = [38, 21, 53, 62, 19]
smallest = a[0]
largest = a[0]
for i in a:
if i > largest:
largest = i
if i < smallest:
smallest = i
print(smallest)
print(largest)
a = [38, 21, 53, 62, 19]
a.sort() # 오름차순 정렬
print(a[0]) # 최소 == 19
a.sort(reverse=True) # 내림차순 정렬
print(a[0]) # 최대 == 62
a = [38, 21, 53, 62, 19]
print(min(a)) # 19
print(max(a)) # 62
a = [38, 21, 53, 62, 19]
total = 0
for i in a:
total += i
print(total) # 193
a = [38, 21, 53, 62, 19]
print(sum(a)) # 193
🌟 min, max, sum에는 모든 반복가능한(iterable)객체를 넣을 수 있다!
뒤에서 앞으로 읽으면 쉽다.
a = [i for i in range(10)] # 0부터 9까지의 숫자를 생성하고, 이 숫자들을 하나씩 꺼내어 리스트로 생성
print(a) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = list(i for i in range(10))
print(b) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 값을 연산해서 리스트를 생성할 때 유용
a = [i+10 for i in range(10)]
print(a) # [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
b = list(i*10 for i in range(10))
print(b) # [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
🌟 list() 보다는 [ ] 방식이 더 성능도 좋고, 파이썬다운 코드이다!
a = [i for i in range(10) if i % 2 == 0] # 0~9까지의 숫자중 짝수로 리스트 생성
print(a) # [0, 2, 4, 6, 8]
for문이 여러 개일 때 처리 순서는 뒤에서 앞 순이다.
a = [i*j for i in range(2, 10) for j in range(1, 10)]
print(a)
# [2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]
# 리스트 전체를 실수 > 정수로 변환
a = [1.2, 2.5, 3.7, 4.6]
a = list(map(int, a))
print(a) # [1, 2, 3, 4]
# 리스트 전체를 실수 > 문자열로 변환
a = [1.2, 2.5, 3.7, 4.6]
a = list(map(str, a))
print(a) # ['1.2', '2.5', '3.7', '4.6']
x = input().split() # input().split()의 결과는 문자열 리스트
print(x) # ['10', '20']
m = map(int, x) # 리스트의 요소를 int로 변환, 결과는 맵 객체
print(m) # <map object at 0x7fc3131b1850>
a, b = m # 맵 객체는 변수 여러 개에 저장할 수 있음
print(a) # 10
print(b) # 20