리스트 (list)

리스트는 mutable 속성을 가진다.
순서 O, 중복 O, 수정 O, 삭제 O

# 리스트 선언

1
2
3
4
5
a = []
b = list()
c = [1, 2, 3, 4]
d = [10, 100, 'Pen', 'Bana', 'Orange']
e = [10, 100, ['Pen', 'Bana', 'Orange']]
1
2
3
4
5
[]
[]
[1, 2, 3, 4]
[10, 100, 'Pen', 'Bana', 'Orange']
[10, 100, ['Pen', 'Bana', 'Orange']]

# 리스트 연산

리스트로 간단한 연산

1
2
3
4
# 연산
print(c + d)
print(c * 3, len(c * 3))
print(str(c[0]) + 'hi')
1
2
3
[1, 2, 3, 4, 10, 100, 'Pen', 'Bana', 'Orange']
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4] 12
1hi

# 리스트 인덱싱 & 슬라이싱

리스트에 인덱싱과 슬라이싱을 통해 원하는 값을 가져올 수 있다.

인덱싱 : 값이 출력
슬라이싱 : list 형태로 출력

리스트 인덱싱

1
2
3
4
5
# 인덱싱
print(d[3], d[-2])
print(d[0] + d[1])
print(e[2][1])
print(e[-1][-2])
1
2
3
4
Bana Bana
110
Bana
Bana

리스트 슬라이싱

1
2
3
4
5
# 슬라이싱
print(d[0:3])
print(d[0:1])
print(d[0:2])
print(e[2][1:3])
1
2
3
4
[10, 100, 'Pen']
[10]
[10, 100]
['Bana', 'Orange']

# 리스트 수정

리스트는 mutable 속성이므로 수정 가능하다.

1
2
3
4
5
a = []
b = list()
c = [1, 2, 3, 4]
d = [10, 100, 'Pen', 'Bana', 'Orange']
e = [10, 100, ['Pen', 'Bana', 'Orange']]

인덱스 지정 수정

1
2
3
# list 수정
c[0] = 77
print(c)
1
[77, 2, 3, 4]

슬라이싱 처리 된 위치에 리스트 값으로 선언 해주면, 값으로 수정된다.

1
2
3
# 슬라이싱 처리하여 값을 할당하면, list 안에 값으로 할당이 된다.
c[1:2] = [100, 1000, 10000]
print(c)
1
[1, 100, 1000, 10000, 3, 4]

인덱스를 지정해준 위치에 리스트 값으로 선언 해주면, 리스트 형태로 수정된다.

1
2
3
# 슬라이싱 처리하여 값을 할당하는 것과 다르게, 인덱스를 지정하여 값을 할당해주면 list 형태로 중첩, 할당된다.
c[1] = ['a', 'b', 'c']
print(c)
1
[1, ['a', 'b', 'c'], 1000, 10000, 3, 4]

# 리스트 삭제

del 을 이용하여 해당 인덱스 값을 삭제한다.

1
c = [1, 2, 3, 4]
1
2
del c[1]
print(c)
1
[1, 3, 4]
1
2
del c[-1]
print(c)
1
[1, 2, 3]

# 리스트 함수

리스트 함수가 사용 가능한 함수를 이용하여 원하는 값을 가져올 수 있다.

1
y = [5, 2, 3, 1, 4]

append() : 리스트 끝에 값을 덧붙인다. 데이터 타입 그대로를 붙인다.

1
2
3
4
5
ex = [88, 77]

# 데이터 타입 그대로로 리스트 끝에 덧붙인다.
y.attend(ex)
print(y)
1
[5, 2, 3, 1, 4, [88, 77]]

extend() : 리스트 끝에 값을 추가한다.

1
2
3
4
5
ex = [88, 77]

# 값 그대로를 리스트 끝에 추가한다.
y.extend(ex)
print(y)
1
[5, 2, 3, 1, 4, 88, 77]

sort() : 리스트 내의 값들을 오름차순으로 정렬시킨다.

1
2
3
# 오름차순으로 리스트를 재정렬
y.sort()
print(y)
1
[1, 2, 3, 4, 5]

reverse() : 리스트 내의 값들을 역순으로 정렬시킨다.

1
2
3
# reverse = 역순으로 줄세우기
y.reverse()
print(y)
1
[5, 4, 3, 2, 1]

insert() : 원하는 인덱스 위치에 값을 수정한다.

1
2
3
# insert = 원하는 인덱스에 값을 수정
y.insert(2, 7)
print(y)
1
[1, 2, 7, 4, 5]

remove() : 원하는 값을 찾아 삭제한다.

1
2
3
# remove = 인덱스를 지우는게 아니라, 원하는 데이터 값을 지정하여 삭제할 수 있다.
y.remove(2)
print(y)
1
[1, 3, 4, 5]

pop() : 리스트의 맨 마지막 값을 없애고, 출력해준다.

1
2
3
# pop = 맨 마지막 값을 꺼내고, 나머지를 출력한다.
y.pop()
print(y)
1
[1, 2, 3, 4]

# 리스트 comprehention

리스트를 간결하고 간편하게 선언하는 방법이다.

먼저 일반적인 리스트 선언은 해보면,

range(1, 100) : 1 부터 99까지 생성해주는 함수

1
2
3
4
5
6
# 일반적인 list 만들기
numbers = []
for n in range(1, 100):
numbers.append(n)

print(numbers)
1
[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, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

comprehention 으로 간단하게 똑같은 리스트를 선언할 수 있다.

1
2
numbers2 = [x for x in range(1, 100)]
print(numbers2)
1
[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, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

리스트 comprehention에서 if 문도 가능하다.

1
2
3
4
# list 컴프리헨션 안에 if 문도 가능하다.
p5 = ['갑', '을', '병', '정']
rep5 = [v for v in p5 if v != '정']
print(rep5)
1
['갑', '을', '병']
Share