리스트에 원소 추가하기
1.
append(값)
리스트의 맨 끝에 값을 추가한다.
리스트.append(값)
Python
복사
2.
insert(위치,값)
지정한 위치에 값을 추가한다.
리스트.insert(위치, 값)
Python
복사
리스트 원소 삭제하기
1.
pop()
•
인자가 없을 경우
맨 끝에 있는 원소 삭제
리스트.pop()
Python
복사
•
인자가 있을 경우
인자 위치에 해당하는 원소 삭제
리스트.pop(인자)
Python
복사
2.
remove(인자)
인자(원소)를 삭제
리스트.remove(인자)
Python
복사
연습 문제
리스트 l이 주어졌을때, 리스트의 처음과 끝을 서로 바꾸어서 반환하는 함수 swap_ends(l)을 작성
def swap_ends(l: list) -> list:
last_one = l[-1]
l[-1] = l[0]
l[0] = last_one
return l
swap_ends([1, 2, 3])
Python
복사
리스트 컴프리헨션 : for 구문
여러 줄을 코드를 사용하지 않고, 리스트를 생성할 수 있다.
l = [i for i in range(100)]
Python
복사
ex. 문자열이 있고, 그 문자열의 문자들을 대문자로 바꾼 뒤, 뒤에 ‘!’를 붙여서 리스트에 각각 저장하고 싶다고 가정
string = 'abc'
l = []
for s in string:
to_insert = s.upper() + '!'
l.append(to_insert)
print(l)
Python
복사
[’A!’,’B!’,’C!’]
ex. 리스트 원소들의 제곱을 원소로 하는 리스트를 생성
numbers = [1, 2, 3, 4, 5]
squares = [i**2 for i in numbers]
Python
복사
조건문을 활용한 리스트 컴프리헨션(1)
ex. 0 ~ 19까지의 숫자 중 홀수만 리스트에 넣고 싶다고 가정
odd_numbers = []
for i in range(20):
if i % 2 == 1:
odd_numbers.append(i)
# 위의 코드를 아래의 리스트 컴프리헨션으로 표현
odd_numbers = [i for i in range(20) if i % 2 == 1]
Python
복사
조건문을 활용한 리스트 컴프리헨션(2)
리스트 컴프리헨션에서 if와 else를 활용하면 두 가지 조건을 사용할 수 있다.
ex. 0 ~ 9까지의 숫자 중에서 짝수는 그대로 두고 홀수는 2배수로 하는 리스트를 만들고 싶다고 하면
l = [i if i % 2 == 0 else i * 2 for i in range(10)]
Python
복사
단, 아쉽게도 elif 는 사용할 수 없다.
ex . 자연수로 된 리스트 numbers가 주어졌을 때 각 원소가 짝수면 ‘짝수’, 홀수면 ‘홀수’로 바꾼 새로운 리스트를 반환하는 함수 odd_ even을 작성
def odd_even(numbers):
return ['짝수' if i % 2 == 0 else '홀수' for i in numbers]
Python
복사
리스트 컴프리헨션을 사용하지 않아야 할 때가 있다.
1.
리스트를 생성하지 않았거나 값을 저장하지 않은 경우
2.
리스트 컴프리헨션의 길이가 너무 길거나 조건문을 너무 많이 넣는 경우
[print(number) for number in range(5)] # [None, None, None, None, None]
Python
복사
numbers = [1,2,3,4,5,6,7,8,9,10]
complicated_result = [(x if x % 2 == 0 else y) * z for x in numbers for y in numbers for z in numbers if (x + y) % 3 == 0 and (x * z) % 4 == 0] ]
Python
복사
위와 같은 경우들이 리스트 컴프리헨션을 사용하기 좋지 않은 예시들이다.