
파이썬에서 배열 자료구조를 구현할 때는 리스트를 활용한다.
append() 메서드맨 끝에 데이터를 추가하는 메서드이다.
test_list = [1, 2, 3]
test_list.append(4)
print(test_list) # [1, 2, 3, 4]
append()와 비슷하게 맨 끝에 다른 리스트의 데이터를 추가할 수 있다.
test_list = [1, 2, 3]
test_list = test_list + [4, 5]
print(test_list) # [1, 2, 3, 4, 5]
insert() 메서드append()와는 다르게 원하는 위치에 데이터를 삽입할 수 있다.
insert() 메서드의 첫 번째 인수에 데이터를 삽입할 위치를, 두 번째 인수에 삽입할 데이터를 넣는다.
배열의 처음이나 중간에 데이터를 삽입하는 경우 시간 복잡도가 이 되므로 사용에 주의해야 한다.
test_list = [1, 2, 3]
test_list.insert(1, 4)
print(test_list) # [1, 4, 2, 3]
pop() 메서드pop() 메서드는 삭제할 인덱스를 인수로 받아 삭제하고 삭제한 데이터의 값을 반환한다.
배열의 처음이나 중간에 데이터 삭제할 경우 시간 복잡도가 이 되므로 사용에 주의해야 한다.
test_list = [1, 2, 3, 4, 5]
popped_data = test_list.pop(2)
print(test_list) # [1, 2, 4, 5]
print(f"삭제된 데이터: {popped_data}") # 삭제된 데이터: 3
remove() 메서드pop() 메서드와 달리 특정 인덱스가 아니라 특정 데이터 자체를 삭제한다.
remove() 메서드는 인수로 받은 값이 처음 등장하는 위치의 데이터를 삭제한다.
배열의 처음이나 중간에 데이터 삭제할 경우 시간 복잡도가 이 되므로 사용에 주의해야 한다.
test_list = [1, 2, 3, 3, 4, 5]
test_list.remove(3)
print(test_list) # [1, 2, 3, 4, 5]
리스트 컴프리헨션은 연산ㅇ니 끝난 리스트를 반환만 하고 연산 대상 리스트를 바꾸진 않는다.
numbers = [1, 2, 3, 4, 5]
squares = [x ** 2 for x in numbers]
print(numbers) # [1, 2, 3, 4, 5]
print(squares) # [1, 4, 9, 16, 25]
numbers = [1, 2, 3, 4, 5]
times = [x * 2 for x in numbers]
print(numbers) # [1, 2, 3, 4, 5]
print(times) # [2, 4, 6, 8, 10]
len() 메서드len() 메서드는 리스트의 전체 데이터 개수를 반환하는 함수이다.
names = ["kim", "nam", "jeon", "park", "lee", "choi", "ham", "kang", "ko", "shin", "yoo", "ham", "cho"]
print(len(names)) # 13
index() 메서드특정 데이터가 처음 등장한 인덱스를 반환하는 메서드이다.
해당 데이터가 없다면 -1 반환한다.
names = ["kim", "nam", "jeon", "park", "lee", "choi", "ham", "kang", "ko", "shin", "yoo", "ham", "cho"]
print(names.index("ham")) # 6
sort() 메서드sort() 메서드는 사용자가 정한 기준에 따라 리스트 데이터를 정렬한다.
아무런 인수도 전달하지 않으면 오름차순으로 데이터를 정렬한다. reverse=True 인수 넣으면 내림차순으로 정리한다.
sort() 메서드는 정렬된 값을 반환하지 않고 원본 리스트를 정렬한다.
names = ["kim", "nam", "jeon", "park", "lee", "choi", "ham", "kang", "ko", "shin", "yoo", "ham", "cho"]
names.sort()
print(names) # ['cho', 'choi', 'ham', 'ham', 'jeon', 'kang', 'kim', 'ko', 'lee', 'nam', 'park', 'shin', 'yoo']
names = ["kim", "nam", "jeon", "park", "lee", "choi", "ham", "kang", "ko", "shin", "yoo", "ham", "cho"]
names.sort(reverse=True)
print(names) # ['yoo', 'shin', 'park', 'nam', 'lee', 'ko', 'kim', 'kang', 'jeon', 'ham', 'ham', 'choi', 'cho']
count() 메서드count() 메서드는 특정 데이터 개수를 반환한다.
names = ["kim", "nam", "jeon", "park", "lee", "choi", "ham", "kang", "ko", "shin", "yoo", "ham", "cho"]
print(names.count("ham")) # 2