티스토리 뷰

Python

파이썬 공부일기 | [4] 리스트

세댕댕이 2021. 3. 10. 22:58

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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함