본문 바로가기
언어/Python

LIST 연산 기본

by lunar7604 2025. 11. 14.

*** 정보가 틀릴 수 있습니다.

 

실행 환경: 리눅스

파이썬 버전: 3.6.8

"f 문자열 포매팅"은 파이썬 버전 3.6 이상부터 사용이 가능.

 


리스트 만들기

- 리스트명 = [요소0, 요소1, ...]

        print(f"// Making List ")
        print(f"// ----------------------------------------")
        list_0 = [5 ,2, 9, 6]
        list_1 = ['Hello', 100]
        list_2 = ['Hello', [3, 4]]
        list_3 = ['Hello', list_0]
        
        print(f"list_0: {list_0}")
        print(f"list_1: {list_1}")
        print(f"list_2: {list_2}")
        print(f"list_3: {list_3}")
// Making List 
// ----------------------------------------
list_0: [5, 2, 9, 6]
list_1: ['Hello', 100]
list_2: ['Hello', [3, 4]]
list_3: ['Hello', [5, 2, 9, 6]]

 


리스트 인덱싱

- list_0 = [5, 2, 9, 6]

- list_0[0]: 5

- list_0[1]: 2

- list_0[3]: 6

- list_0[-1] = list_0[3]: 6 (인덱스에 -1은 '총 요소 개수' -1로 치환하여 생각하면 편함, list_0[-1] = list_0[4-1] = list[3]

        print(f"// List indexing")
        print(f"// ----------------------------------------")
        list_0 = [5 ,2, 9, 6]
        print(f"list_0: {list_0}")
        print(f"1. list_0[0]: {list_0[0]}")
        print(f"2. list_0[1]: {list_0[1]}")
        print(f"3. list_0[2]: {list_0[2]}")
        print()
// List indexing
// ----------------------------------------
list_0: [5, 2, 9, 6]
1. list_0[0]: 5
2. list_0[1]: 2
3. list_0[2]: 9

 


리스트의 마지막 값 찾기

- list_2 = ['Hello', [3, 4]]

- list_2는 [0], [1] 요소를 갖고 list[1] = [3, 4]

- list_2[-1] == list_2[1]과 동일함

        print(f"// Finding last index value")
        print(f"// ----------------------------------------")
        list_2 = ['Hello', [3, 4]]
        print(f"list_2: {list_2}")
        print(f"1. list_2[-1]: {list_2[-1]}")
        print(f"2. list_2[-1][-1]: {list_2[-1][-1]}")
        print(f"3. list_2[-1][-2]: {list_2[-1][-2]}")
        print()
// Finding last index value
// ----------------------------------------
list_2: ['Hello', [3, 4]]
1. list_2[-1]: [3, 4]
2. list_2[-1][-1]: 4
3. list_2[-1][-2]: 3

 

 


리스트의 슬라이싱

- 리스트명[시작 번호:끝 번호]는 리스트[시작 번호]에서 리스트명[끝 번호-1]를 의미

- list_0 = [5, 2, 9, 6] 에서 list_0[1:3]은 list[0] list[1]은 포함이지만 list[2]는 포함하지 않음 

- list_0[0:] 인덱스가 표시되어있지 않으면 끝까지를 의미 (list[0] 부터 list 끝까지)

- list_0[:]는 리스트 처음부터 끝까지 == list_0

- list_0[1:-1]의 경우 list_0[1:3]과 같음 (list_0[-1] == list_0[3]임으로 -1은 3으로 치환된다고 볼 수 있음)

        print(f"// List slicing")
        print(f"// ----------------------------------------")
        list_0 = [5 ,2, 9, 6]
        print(f"list_0: {list_0}")
        print(f"1. list_0[1:3]: {list_0[1:3]}")
        print(f"2. list_0[1:-1]: {list_0[1:-1]}")
        print(f"3. list_0[0:-1]: {list_0[0:-1]}")
        print(f"4. list_0[0:0]: {list_0[0:0]}")
        print(f"5. list_0[0:3]: {list_0[0:3]}")
        print(f"6. list_0[:]: {list_0[:]}")
        print(f"7. list_0[1:]: {list_0[1:]}")
        list_2 = ['Hello', [3, 4]]
        print(f"list_2: {list_2}")
        print(f"8. list_2[1][:]: {list_2[1][:]}")
        print(f"9. list_2[1][1:2]: {list_2[1][1:2]}")
        print()
// List slicing
// ----------------------------------------
list_0: [5, 2, 9, 6]
1. list_0[1:3]: [2, 9]
2. list_0[1:-1]: [2, 9]
3. list_0[0:-1]: [5, 2, 9]
4. list_0[0:0]: []
5. list_0[0:3]: [5, 2, 9]
6. list_0[:]: [5, 2, 9, 6]
7. list_0[1:]: [2, 9, 6]
list_2: ['Hello', [3, 4]]
8. list_2[1][:]: [3, 4]
9. list_2[1][1:2]: [4]

 


리스트 연산

- '+'는 리스트끼리 더하니 '*'는 리스트를 반복하는 역할

        print(f"// List operations")
        print(f"// ----------------------------------------")
        list_0 = [5 ,2, 9, 6]
        list_1 = ['Hello', 100]
        print(f"list_0: {list_0}")
        print(f"list_1: {list_1}")
        print(f"1. list_0 + list_1: {list_0 + list_1}")
        print(f"2. 'a' + 'b': {'a' + 'b'}")
        print(f"3. list_0 * 2: {list_0 * 2}")
        print(f"4. 'a' * 2: {'a' * 2}")
        print()
// List operations
// ----------------------------------------
list_0: [5, 2, 9, 6]
list_1: ['Hello', 100]
1. list_0 + list_1: [5, 2, 9, 6, 'Hello', 100]
2. 'a' + 'b': ab
3. list_0 * 2: [5, 2, 9, 6, 5, 2, 9, 6]
4. 'a' * 2: aa

 

 


리스트 수정

- 리스트의 치환: list_0[2] = 7 리스트 3번째 요소를 7로 치환

- 리스트의 식제: del list_0[2] 리스트 3번째 요소를 삭제

- 리스트의 추가: list_0 = list_0 + [1, 9] 리스트 마지막에 [1, 9]를 추가

- 리스트의 추가: list_0.append(3) 리스트 마지막에 3을 추가

- 리스트의 추가: list_0.insert(2, [5, 3]) 리스트 요소 3번째에 [5, 3] 리스트 추가

- 리스트의 추가: list_0[2:2] = [1, 2] 리스트 요소 3번째에 [1, 2] 리스트 추가

- 리스트 마지막 요소 pop: list_0.pop() 리스트 마지막 요소를 return하고 삭제

- 리스트 특정 요소 pop: list_0.pop(4) 리스트 5번째 요소를 return하고 삭제

        print(f"// List modifying")
        print(f"// ----------------------------------------")
        list_0 = [5 ,2, 9, 6]
        print(f"list_0: {list_0}")
        list_0[2] = 7
        print(f"1. list_0: {list_0}")
        print()

        del list_0[1]
        print(f"2. list_0: {list_0}")
        del list_0[1:]
        print(f"4. list_0: {list_0}")
        print()

        list_0 = list_0 + [1, 9]
        print(f"3. list_0: {list_0}")
        print()

        list_0 = list_0 + [8]
        print(f"5. list_0: {list_0}")
        list_0.append(3)
        print(f"6. list_0: {list_0}")
        print()

        list_0.insert(2, [5, 3]) # Insert only one element
        print(f"7. list_0: {list_0}")
        list_0[2:2] = [1, 2] # Insert multiple element
        print(f"8. list_0: {list_0}")
        print()


        print(f"list_0.pop(): {list_0.pop()}")
        print(f"list_0.pop(): {list_0.pop()}")
        print(f"list_0: {list_0}")
        print(f"list_0.pop(4): {list_0.pop(4)}")
        print(f"list_0: {list_0}")
        print()
// List modifying
// ----------------------------------------
list_0: [5, 2, 9, 6]
1. list_0: [5, 2, 7, 6]

2. list_0: [5, 7, 6]
4. list_0: [5]

3. list_0: [5, 1, 9]

5. list_0: [5, 1, 9, 8]
6. list_0: [5, 1, 9, 8, 3]

7. list_0: [5, 1, [5, 3], 9, 8, 3]
8. list_0: [5, 1, 1, 2, [5, 3], 9, 8, 3]

list_0.pop(): 3
list_0.pop(): 8
list_0: [5, 1, 1, 2, [5, 3], 9]
list_0.pop(4): [5, 3]
list_0: [5, 1, 1, 2, 9]

 

 


기타

- 리스트 요소 개수 구하기: len(list_0) 요소가 5개라면 5 반환

- 리스트 인덱스 구하기: list_0.index(1) list_0에서 첫번째로 나오는 1의 인덱스를 반환

- 리스트 특정 요소 개수 구하기: list_0.count(1) 요소에서 1과 일치하는것의 개수를 반

        print(f"// ----------------------------------------")
        list_0 = [5, 1, 1, 3, 9]
        print(f"list_0: {list_0}")
        print(f"list_0.index(1): {list_0.index(1)}")
        print(f"len(list_0): {len(list_0)}")
        print(f"list_0[:len(list_0)]: {list_0[:len(list_0)]}")
        print(f"list_0.count(1): {list_0.count(1)}")

        print()
        list_0.extend([3, 0])
        print(f"list_0: {list_0}")
        lenLst0 = len(list_0)
        list_0[lenLst0:lenLst0] = ['hi', 'hello']
        print(f"list_0: {list_0}")
        list_0 = list_0 + ['hi2', 'hello']
        print(f"list_0: {list_0}")
        print()
// ----------------------------------------
list_0: [5, 1, 1, 3, 9]
list_0.index(1): 1
len(list_0): 5
list_0[:len(list_0)]: [5, 1, 1, 3, 9]
list_0.count(1): 2

list_0: [5, 1, 1, 3, 9, 3, 0]
list_0: [5, 1, 1, 3, 9, 3, 0, 'hi', 'hello']
list_0: [5, 1, 1, 3, 9, 3, 0, 'hi', 'hello', 'hi2', 'hello']

 

 

 

 

 

---------------------------------------- 사용한 코드 ----------------------------------------

#!/usr/bin/python3

def main():
        print(f"// Making List ")
        print(f"// ----------------------------------------")
        list_0 = [5 ,2, 9, 6]
        list_1 = ['Hello', 100]
        list_2 = ['Hello', [3, 4]]
        list_3 = ['Hello', list_0]

        print(f"list_0: {list_0}")
        print(f"list_1: {list_1}")
        print(f"list_2: {list_2}")
        print(f"list_3: {list_3}")

        print()

        print(f"// List indexing")
        print(f"// ----------------------------------------")
        list_0 = [5 ,2, 9, 6]
        print(f"list_0: {list_0}")
        print(f"1. list_0[0]: {list_0[0]}")
        print(f"2. list_0[1]: {list_0[1]}")
        print(f"3. list_0[2]: {list_0[2]}")
        print()

        print(f"// Finding last index value")
        print(f"// ----------------------------------------")
        list_2 = ['Hello', [3, 4]]
        print(f"list_2: {list_2}")
        print(f"1. list_2[-1]: {list_2[-1]}")
        print(f"2. list_2[-1][-1]: {list_2[-1][-1]}")
        print(f"3. list_2[-1][-2]: {list_2[-1][-2]}")
        print()

        print(f"// List slicing")
        print(f"// ----------------------------------------")
        list_0 = [5 ,2, 9, 6]
        print(f"list_0: {list_0}")
        print(f"1. list_0[1:3]: {list_0[1:3]}")
        print(f"2. list_0[1:-1]: {list_0[1:-1]}")
        print(f"3. list_0[0:-1]: {list_0[0:-1]}")
        print(f"4. list_0[0:0]: {list_0[0:0]}")
        print(f"5. list_0[0:3]: {list_0[0:3]}")
        print(f"6. list_0[:]: {list_0[:]}")
        print(f"7. list_0[1:]: {list_0[1:]}")
        list_2 = ['Hello', [3, 4]]
        print(f"list_2: {list_2}")
        print(f"8. list_2[1][:]: {list_2[1][:]}")
        print(f"9. list_2[1][1:2]: {list_2[1][1:2]}")
        print()

        print(f"// List operations")
        print(f"// ----------------------------------------")
        list_0 = [5 ,2, 9, 6]
        list_1 = ['Hello', 100]
        print(f"list_0: {list_0}")
        print(f"list_1: {list_1}")
        print(f"1. list_0 + list_1: {list_0 + list_1}")
        print(f"2. 'a' + 'b': {'a' + 'b'}")
        print(f"3. list_0 * 2: {list_0 * 2}")
        print(f"4. 'a' * 2: {'a' * 2}")
        print()

        print(f"// List modifying")
        print(f"// ----------------------------------------")
        list_0 = [5 ,2, 9, 6]
        print(f"list_0: {list_0}")
        list_0[2] = 7
        print(f"1. list_0: {list_0}")
        print()

        del list_0[1]
        print(f"2. list_0: {list_0}")
        del list_0[1:]
        print(f"4. list_0: {list_0}")
        print()

        list_0 = list_0 + [1, 9]
        print(f"3. list_0: {list_0}")
        print()

        list_0 = list_0 + [8]
        print(f"5. list_0: {list_0}")
        list_0.append(3)
        print(f"6. list_0: {list_0}")
        print()

        list_0.insert(2, [5, 3]) # Insert only one element
        print(f"7. list_0: {list_0}")
        list_0[2:2] = [1, 2] # Insert multiple element
        print(f"8. list_0: {list_0}")
        print()


        print(f"list_0.pop(): {list_0.pop()}")
        print(f"list_0.pop(): {list_0.pop()}")
        print(f"list_0: {list_0}")
        print(f"list_0.pop(4): {list_0.pop(4)}")
        print(f"list_0: {list_0}")
        print()


        print(f"// ----------------------------------------")
        list_0 = [5, 1, 1, 3, 9]
        print(f"list_0: {list_0}")
        print(f"list_0.index(1): {list_0.index(1)}")
        print(f"len(list_0): {len(list_0)}")
        print(f"list_0[:len(list_0)]: {list_0[:len(list_0)]}")
        print(f"list_0.count(1): {list_0.count(1)}")

        print()
        list_0.extend([3, 0])
        print(f"list_0: {list_0}")
        lenLst0 = len(list_0)
        list_0[lenLst0:lenLst0] = ['hi', 'hello']
        print(f"list_0: {list_0}")
        list_0 = list_0 + ['hi2', 'hello']
        print(f"list_0: {list_0}")
        print()


if __name__=='__main__':
        main()