append(x)
insert(x, y)
extend(x)
numbers = [2, 4, 6, 8, 10, 1, 3, 5, 7, 9]
print(numbers)
numbers.insert(3, [11, 12, 13])
print(numbers)
# [2, 4, 6, [11, 12, 13], 8, 10, 1, 3, 5, 7, 9]
#append와 extend의 차이
numbers.extend(['a', 'b', 'c'])
print(numbers)
# [2, 4, 6, [11, 12, 13], 8, 10, 1, 3, 5, 7, 9, 'a', 'b', 'c']
numbers.append(['a', 'b', 'c'])
print(numbers)
# [2, 4, 6, [11, 12, 13], 8, 10, 1, 3, 5, 7, 9, 'a', 'b', 'c', ['a', 'b', 'c']]
insert
를 통해 하나의 값만 넣을 수 있는 것은 분명하다. 단, 하나의 값에는 리스트 또한 가능하다.append
로 리스트값을 넣으면 리스트 또한 하나의 값으로 처리되지만, extend
로 리스트값을 넣으면 리스트 괄호가 풀리고 그 리스트 안에 포함되었던 요소의 개수만큼 값이 입력된다.remove(x)
pop()
numbers = [2, 4, 6, 8, 1, 3, 5, 7]
print(numbers)
numbers.insert(3, [11, 12, 13])
print(numbers)
# [2, 4, 6, [11, 12, 13], 8, 1, 3, 5, 7]
numbers.remove(3)
print(numbers)
# [2, 4, 6, [11, 12, 13], 8, 1, 5, 7]
print(numbers.pop())
# 7
print(numbers)
# [2, 4, 6, [11, 12, 13], 8, 1, 5]
sort()
reverse()
evennumbers = [2, 4, 6, 8]
oddnumbers = [1, 3, 5, 7]
print(evennumbers, oddnumbers)
# [2, 4, 6, 8] [1, 3, 5, 7]
numbers = evennumbers + oddnumbers
print(numbers)
# [2, 4, 6, 8, 1, 3, 5, 7]
numbers.sort()
print(numbers)
# [1, 2, 3, 4, 5, 6, 7, 8]
numbers.reverse()
print(numbers)
# [8, 7, 6, 5, 4, 3, 2, 1]
index(x)
count(x)
numbers = [1, 6, 7, 3, 5, 6, 8, 3, 3]
print(numbers.index(6))
# 1
print(numbers)
print(numbers.count(3))
# 3
값의 길이(개수)를 알 수 있는 함수
list1 = [2,5,2,0,1]
list2 = [4,1,2]
list1.append(list2)
print(list1, len(list1))
# [2, 5, 2, 0, 1, [4, 1, 2]] 6
파이썬 함수들은 다른 언어에 비해 굉장히 직관적이고 간결하다. 또한, 리스트는 파이썬 프로그래밍을 할 때 꽤 자주 쓰이므로 리스트 함수를 많이 연습할 것을 추천한다.
파이썬은 사람의 직관에 조금 더 친화적인 언어이므로 리스트는 컴퓨터의 구조에 대해 이해하지 못한 사람도 직관적인 사용을 할 수 있도록 지원한다. 이렇게 부드러운 용법을 가진 리스트도 한 가지 엄격한 개념이 있다. 바로 선언과 값의 할당에 관한 용법이다.
리스트를 선언하고 사용하는 방법은 두 가지가 있다.
1. a = []
혹은 a = list()
형식으로 빈 리스트 생성
2. a = [1, 2, 3, 4, 5]
혹은 a = list([1, 2, 3, 4, 5])
형식으로 리스트 생성과 동시에 값 할당
1번 상황의 경우
drawer = []
drawer[0] = "양말"
위와 같이 빈 리스트를 먼저 생성하고 값을 초기화하는 것은 불가능하다. 리스트값의 개수와 값을 초기화하지 않고 빈 리스트만 선언했다면 공간을 마련하고 값을 하나씩 추가해야 한다. 따라서 아래와 같이 코드를 작성해야 오류가 발생하지 않는다.
drawer = []
drawer.append("양말")
print(drawer, drawer[0])
# ['양말'] 양말
만약 여러 값을 한 번에 추가하고 싶다면 extend()
함수를 사용하면 된다.
drawer = []
drawer.append("양말")
print(drawer, drawer[0])
# ['양말'] 양말
drawer.extend(["속옷", "모자", "반팔", "바지"])
print(drawer)
# ['양말', '속옷', '모자', '반팔', '바지']
이번엔 2번 상황을 보자.
drawer = ["양말", "속옷", "모자", "반팔", "바지"]
print(drawer)
# ['양말', '속옷', '모자', '반팔', '바지']
위와 같을 때, drawer[5]
나 drawer[6]
에는 접근이 불가하다. 이는 1번 상황과 같은 맥락이다. 순차적으로 추가를 해야만 접근 가능하다.
drawer = ["양말", "속옷", "모자", "반팔", "바지"]
del drawer[3]
print(drawer)
# ['양말', '속옷', '모자', '바지']
drawer[3] = ""
print(drawer)
# ['양말', '속옷', '모자', '']
drawer[3] = "점퍼"
print(drawer)
# ['양말', '속옷', '모자', '점퍼']
del
키워드를 사용하면 칸 자체를 삭제한다. 여기서 주의할 점은 drawer[3] = ""
이다. 인덱스 3에 빈칸을 할당하는 것이지 drawer[3]
값 자체를 삭제하는 것이 아니기 때문에 drawer[3]
은 존재하는 것이다.
이 글은 goorm edu의 한 눈에 끝내는 파이썬3 기초 강좌를 참고하여 작성되었습니다.