리스트

  • 순서를 가지는 객체의 집합
  • 수정이 가능

리스트 선언

print([])
print(type([]))
print([1, 2,3])
print("One", "Two", "Three")
print(1, "one", True, 2, False)
[]
<class 'list'>
[1, 2, 3]
One Two Three
1 one True 2 False

리스트 인덱싱

li = [1, 2, 3, True, "Hi"]

print(li)
print(li[0])
print(li[2])
print(li[3])
print(li[4])
print(li[-1])
print(li[-2])
print(li[-5])
[1, 2, 3, True, 'Hi']
1
3
True
Hi
Hi
True
1

리스트 슬라이싱

li = [1, 2, 3, "One", "Two", "Mon", False, None]

print(li)
print(li[:5])
print(li[3:7])
print(li[5:])
print(li[1:-1])
print(li[:-5])
print(li[-5: -2])
[1, 2, 3, 'One', 'Two', 'Mon', False, None]
[1, 2, 3, 'One', 'Two']
['One', 'Two', 'Mon', False]
['Mon', False, None]
[2, 3, 'One', 'Two', 'Mon', False]
[1, 2, 3]
['One', 'Two', 'Mon']

중첩 리스트 선언

print(1, 2, 3, ["One", "Two", "Three"])
print(1, 2, ["One", "Two", [True, False]])

중첩 리스트 인덱싱

li1 = [1, 2, 3, ["One", "Two", "Three"]]
li2 = 1, 2, ["One", "Two", [True, False]]

print(li1[3])
print(li1[3][0])
print(li2[2])
print(li2[2][2])
print(li2[2][2][1])
[1, 2, 3, ['One', 'Two', 'Three']]
(1, 2, ['One', 'Two', [True, False]])
['One', 'Two', 'Three']
One
['One', 'Two', [True, False]]
[True, False]
False

중첩 리스트 슬라이싱

li1 = [1, 2, 3, ["One", "Two", "Three"]]
li2 = 1, 2, ["One", "Two", [True, False]]

print(li1[2:4])
print(li1[3][:])
print(li1[3][:-2])
print(li2[-1])
print(li2[-1][-1])
print(li2[-1][-1][-2])
[3, ['One', 'Two', 'Three']]
['One', 'Two', 'Three']
['One']
['One', 'Two', [True, False]]
[True, False]
True

리스트 연산

li1 = [1, 2, 3]
li2 = [4, 5, 6]

print(li1+li2)
print(li1*3)
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 1, 2, 3, 1, 2, 3]

리스트 수정

li = ["One", "Two", "Three"]

li[0] = 1
print(li)
li[1] = 2
print(li)
[1, 'Two', 'Three']
[1, 2, 'Three']

리스트 메소드

리스트 메소드 설명
append() 리스트 요소 삽입(맨 뒤)
sort() 리스트 정렬(원본을 정렬하고 수정)
sorted() 리스트 정렬(원본을 유지하고 새 리스트 생성)
reverse() 리스트 요소 반전
index() 리스트 요소 값의 인덱스 반환
insert() 리스트 요소 삽입(원하는 인덱스)
remove() 리스트 요소 제거
del 리스트 인덱스 제거
pop() 리스트의 맨 마지막 요소를 리턴하고 그 요소는 삭제
count() 리스트 요소 갯수 계산
extend() 리스트 확장
li1 = ["One", "Two", "Three"]
li1.append("Four")
print(li1)
li1.append([1, 2, 3, 4])
print(li1)

li2 = [10, 40, 20, 5, 80, 35]
sort_li2 = li2.sort()
print(li2)
print(sort_li2) # 기존 리스트를 수정

sort_li2 = li2.sort(reverse=True)   # 요소를 반전
print(li2)
print(sort_li2) # 기존 리스트를 수정

li3 = [20, 5, 1, 30, 80, 50]
sorted_li3 = sorted(li3)
print(li3)
print(sorted_li3)   # 기존 리스트는 유지하고 새로운 리스트 생성

sorted_li3 = sorted(li3, reverse=True)  # 요소를 반전
print(li3)
print(sorted_li3)   # 기존 리스트는 유지하고 새로운 리스트 생성

li4 = [1, 2, 3]
li4.reverse()
print(li4)

li5 = [10, 30, 40, 20]
print(li5.index(10))
print(li5.index(40))

li6 = ["One", "Two", "Three"]
li6.insert(3, "Four")
print(li6)
li6.insert(0, "Zero")
print(li6)

li7 = [1, 2, 3, 4, "Hi"]
li7.remove("Hi")
print(li7)
li7.remove(2)
print(li7)

li8 = [1, 2, 3, 4]
del li8[0]
print(li8)
del li8[2]
print(li8)

li9 = [4, 3, 2, 1]
print(li9.pop())
print(li9)
print(li9.pop(0))
print(li9)

li10 = [10, 10, 20, 30, 30, 30]
print(li10.count(10))
print(li10.count(20))
print(li10.count(30))

li11 = [1, 2, 3]
li12 = [4, 5]
li11.extend(li12)
print(li11)
li11.extend([6, 7])
print(li11)
['One', 'Two', 'Three', 'Four']
['One', 'Two', 'Three', 'Four', [1, 2, 3, 4]]
[5, 10, 20, 35, 40, 80]
None
[80, 40, 35, 20, 10, 5]
None
[20, 5, 1, 30, 80, 50]
[1, 5, 20, 30, 50, 80]
[20, 5, 1, 30, 80, 50]
[80, 50, 30, 20, 5, 1]
[3, 2, 1]
0
2
['One', 'Two', 'Three', 'Four']
['Zero', 'One', 'Two', 'Three', 'Four']
[1, 2, 3, 4]
[1, 3, 4]
[2, 3, 4]
[2, 3]
1
[4, 3, 2]
4
[3, 2]
2
1
3
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7]

기타 알고리즘

# 리스트 요소 하나씩 처리하기
li = [1, 2, 3, 4, 5]
result = []
for i in li:
    i += 1
    print(i)
    result.append(i)
print(result)
2
3
4
5
6
[2, 3, 4, 5, 6]
li = [1, 2, 3, 4, 5]
list(map(lambda x: x, li))
[1, 2, 3, 4, 5]

카테고리:

업데이트:

댓글남기기