티스토리 뷰
4.1) 리스트
numbers = [1, 2, 3, 4, 5, 6]
words = ["가", "나", "다", "라", "마"]
# 음의 인덱싱..!!!
numbers[-1]
>> 6
numbers[-6]
>> 1
numbers[-7]
>> Error..
# list slicing
# :4는 4까지가 아니라 4앞까지인점 유념
print(numbers[1:4])
>> [2, 3, 4]
print(numbers[:4])
>> [1, 2, 3, 4]
print(numbers[4:])
>> [5, 6]
# list 복사
x = [1, 2, 3, 4, 5]
y = list(x)
print(y)
>> [1, 2, 3, 4, 5]
# list 복사를 안하면.. x와 y가 같은 리스트를 가리키므로 의도치않은 문제가 생김
x = [1, 2, 3, 4, 5]
y = x
y[2] = 10
print(x)
>> 1, 2, 10, 4, 5
print(y)
>> 1, 2, 10, 4, 5
음의 방향으로 인덱싱이 가능하다..!!
근데 굳이 쓰진 않을듯
4.2) 리스트 활용 함수
numbers = [1, 2, 3]
# len -> 리스트 내 원소의 개수 출력
print(len(numbers))
>> 3
# append -> 리스트에 원소 추가
numbers.append(4)
print(numbers)
>> [1, 2, 3, 4]
# extend -> 리스트에 원소 여러개 추가
numbers.extend([5,6,7])
print(numbers)
>> [1, 2, 3, 4, 5, 6, 7]
# del -> 해당 인덱스의 원소 삭제
del numbers[1]
print(numbers)
>> [1, 3, 4, 5, 6, 7]
# insert -> 해당 인덱스에 원소 추가
numbers.insert(1, 2)
print(numbers)
>> [1, 2, 3, 4, 5, 6, 7]
# in -> 리스트에 찾고자하는 값이 있는지 찾는
print(1 in numbers)
>> True
print(5 in numbers)
>> False
# 값이 없는지 확인하려면 not을 붙인다
print(5 not in numbers)
>> True
# reverse -> 리스트 뒤집기
numbers = [1, 3, 2, 4]
numbers.reverse()
print(numbers)
>> [4, 2, 3, 1]
# index -> 찾고자 하는 값의 인덱스를 반환
item = ["감자", "고구마", "호박", "당근", "고구마"]
print(item.index("감자"))
>> 0
print(item.index("호박"))
>> 2
# remove -> 리스트에서 첫번째로 x의 값을 갖는 원소 삭제
item = ["감자", "고구마", "호박", "당근", "고구마"]
item.remove("고구마")
print(item)
>> ["감자", "호박", "당근", "고구마"]
## 응용
item = [["감자", "고구마", "호박"], [1, 2, 3], 4, 5, 6]
item.sort() >> ERROR
print("감자" in item)
>> False
print("감자" in item[0])
>> True
item[1].reverse()
print(item)
>> [["감자", "고구마", "호박"], [3, 2, 1], 4, 5, 6]
del item[0][1]
print(item)
>> [["감자", "호박"], [3, 2, 1], 4, 5, 6]
item[0].extend(["당근", "무", "양파"])
print(item)
>> [['감자', '호박', '당근', '무', '양파'], [3, 2, 1], 4, 5, 6]
append > 항상 가장 끝에 삽입
insert > 내가 원하는 인덱스에 삽입
4.3) 정렬
numbers = [1, 3, 2, 4, 5]
# 오름차순
new_list = sorted(numbers)
>> [1, 2, 3, 4, 5]
# 내림차순
new_list = sorted(numbers, reverse=True)
>> [5, 4, 3, 2, 1]
# sorted는 기존 리스트를 건드리지 않고 새 리스트를 반환함
print(numbers)
>> [1, 3, 2, 4, 5]
# sort는 기존 리스트를 바꾸고 아무것도 반환하지 않음
print(numbers.sort())
>> [1, 2, 3, 4, 5]
print(numbers.sort(reverse=True))
>> [5, 4, 3, 2, 1]
sorted >> 정렬된 새 리스트를 반환
sort >> 현재 리스트를 정렬함
4.4) 리스트 안에 리스트
score = [[90, 80, 90], [90, 70, 40], [80, 50, 60]]
print(score[0])
>> [90, 80, 90]
print(score[0][0])
>> 90
print(score[1][1])
>> 70
4.5) 문자열과 리스트의 차이점
문자열 -> 수정 불가능 (Immutable - 숫자, Boolen, 문자열 등)
리스트 -> 수정 가능 (Mutable - 리스트, 사전 등)
'Python' 카테고리의 다른 글
파이썬 공부일기 | [5] 사전 (0) | 2021.03.12 |
---|---|
파이썬 공부일기 | [3] 반복문 (0) | 2021.03.10 |
파이썬 공부일기 | [2] 추상화 (0) | 2021.03.10 |
파이썬 공부일기 | [1] 자료형 (0) | 2021.03.08 |
댓글