List

List

Python의 list는 C++의 array 역할을 하지만 vector와 매우 유사하다고 느껴진다

1. list 생성

1
2
- 대괄호([,])와 콤마(,) 사용
- list() 사용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
l1 = [1,2,3]
l2 = ['a', 'b', 'almond']
l3 = ['kern', 30]
l4 = [[0,1], [2,3], [4, 5]]
l5 = list("You were amazing")
l6 = list(l1+l2+l3)
l7 = [i for i in range(10)]
print(l1)
print(l2)
print(l3)
print(l4)
print(l5)
print(l6)
print(l7)
1
2
3
4
5
6
7
[1, 2, 3]
['a', 'b', 'almond']
['kern', 30]
[[0, 1], [2, 3], [4, 5]]
['Y', 'o', 'u', ' ', 'w', 'e', 'r', 'e', ' ', 'a', 'm', 'a', 'z', 'i', 'n', 'g']
[1, 2, 3, 'a', 'b', 'almond', 'kern', 30]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2. 음수 인덱스

1
2
3
4
5
6
7
8
9
l1 = [0, 1, 2, 3, 4, 5]
#idx  0  1  2  3  4  5
#    -6 -5 -4 -3 -2 -1

print(l1)
print(l1[-1])
print(l1[-2])
print(l1[-6])
print(l1[:-2])
1
2
3
4
5
[0, 1, 2, 3, 4, 5]
5
4
0
[0, 1, 2, 3]

3. list 연산

1
2
3
4
5
l1 = [1, 2, 3]
l2 = [4, 5, 6]

print(l1+l2)
print(l1*3)
1
2
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 1, 2, 3, 1, 2, 3]

4. list 접근

1
2
3
4
5
6
7
8
9
10
11
12
13
14
l1 = [i for i in range(20)]

# 가장 기본형: list[begin:end:step]
# begin==시작점
# end==끝점 (실제 끝지점+1)
# step==몇칸씩 뛰어넘기

print("l1 = ", l1)
print("l1[5:] = ", l1[5:])
print("l1[:13] = ", l1[:13])
print("l1[::2] = ", l1[::2])
print("l1[3:9] = ", l1[3:9]) 
print("l1[3::2] = ",l1[3::2])
print("l1[:17:4] = ", l1[:17:4])
1
2
3
4
5
6
7
l1 =  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
l1[5:] =  [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
l1[:13] =  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
l1[::2] =  [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
l1[3:9] =  [3, 4, 5, 6, 7, 8]
l1[3::2] =  [3, 5, 7, 9, 11, 13, 15, 17, 19]
l1[:17:4] =  [0, 4, 8, 12, 16]

5. 문자열 리스트처럼 다루기

1
- C++ 에서 string이 vector 기반인것과 동일한 느낌
1
2
3
4
5
6
7
8
s1 = "Wish you the best from the bottom of my heart"
print("s1 : ", s1)
print("s1[2:] : ", s1[2:])
print("s1[5:22] : ", s1[5:22])
print("s1[::2] : ", s1[::2])
print("s1[::-2] : ", s1[::-2])
print("s1[-5:] : ", s1[-5:])
print("s1[:-10] : ", s1[:-10])
1
2
3
4
5
6
7
s1 :  Wish you the best from the bottom of my heart
s1[2:] :  sh you the best from the bottom of my heart
s1[5:22] :  you the best from
s1[::2] :  Ws o h etfo h otmo yhat
s1[::-2] :  tahy omto h ofte h o sW
s1[-5:] :  heart
s1[:-10] :  Wish you the best from the bottom o

6. 기타 연산

1
2
data = [1,2,3,4]
print(data)
1
[1, 2, 3, 4]
1
2
data.append(5)
print(data)
1
[1, 2, 3, 4, 5]
1
2
data.insert(2,7)
print(data)
1
[1, 2, 7, 3, 4, 5]
1
2
data.pop()
print(data)
1
[1, 2, 7, 3, 4]
1
2
data.sort()
print(data)
1
[1, 2, 3, 4, 7]
1
2
3
data2=[[1,2,3],[4,5,6]]
print(data2[0])
print(data2[1][2])
1
2
[1, 2, 3]
6

vector와 같이 append, pop, sort 연산 등 다양한 연산을 지원하고 상당히 직관적이다

References

https://fun-coding.org/
개발자를 위한 파이썬