산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

Python 리스트 연산: 생성, 접근, 수정, 고급 기법

Python 리스트 연산

Python 리스트는 언어에서 가장 다재다능한 자료구조 중 하나로, 값의 시퀀스를 효율적으로 저장, 구성, 조작할 수 있게 해줍니다. 이 가이드는 리스트 생성과 요소 접근부터 슬라이싱, 컴프리헨션, 내장 메서드 같은 고급 기법까지 모두 다룹니다.

동영상: Python 리스트와 튜플

Python 리스트를 사용하면 여러 항목을 동시에 다룰 수 있습니다. 예:

# 프로그래밍 언어 리스트
['Python', 'C++', 'JavaScript']

Python 리스트 생성하기

리스트는 대괄호 [] 안에 요소를 쉼표로 구분해 넣어 생성합니다. 리스트는 항목 수에 제한이 없으며 다양한 데이터 타입을 혼합할 수 있습니다.

# 정수 리스트
my_list = [1, 2, 3]

예시:

# 빈 리스트
my_list = []
# 혼합 데이터 타입
my_list = [1, "Hello", 3.4]

리스트 안에 또 다른 리스트를 포함시켜 중첩 구조를 만들 수도 있습니다.

# 중첩 리스트
my_list = ["mouse", [8, 4, 6], ["a"]]

리스트 요소 접근하기

Python은 항목에 접근하는 여러 방법을 제공합니다.

인덱싱

[] 연산자를 사용합니다. 인덱스는 0부터 시작하며, 범위를 벗어나면 IndexError, 정수가 아닌 인덱스를 사용하면 TypeError가 발생합니다.

my_list = ['p', 'r', 'o', 'b', 'e']
print(my_list[0])  # p
print(my_list[2])  # o
print(my_list[4])  # e
n_list = ["Happy", [2, 0, 1, 5]]
print(n_list[0][1])  # a
print(n_list[1][3])  # 5
print(my_list[4.0])  # TypeError

출력

p o e a 5 Traceback (most recent call last): File "<string>", line 21, in <module> TypeError: list indices must be integers or slices, not float

음수 인덱싱

음수 인덱스는 리스트 끝에서부터 셉니다: -1은 마지막 요소, -2는 끝에서 두 번째 등입니다.

my_list = ['p','r','o','b','e']
print(my_list[-1])  # e
print(my_list[-5])  # p

출력

e p
Python 리스트 연산: 생성, 접근, 수정, 고급 기법

리스트 슬라이싱

슬라이싱은 콜론 연산자 :를 사용해 항목 범위를 추출합니다. 시작 인덱스는 포함되고, 끝 인덱스는 제외됩니다.

my_list = ['p','r','o','g','r','a','m','i','z']
print(my_list[2:5])  # ['o', 'g', 'r']
print(my_list[5:])   # ['a', 'm', 'i', 'z']
print(my_list[:])    # 전체 리스트

출력

['o', 'g', 'r'] ['a', 'm', 'i', 'z'] ['p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z']

참고: 슬라이싱은 새 리스트를 반환하며 원본은 변경되지 않습니다.


리스트 요소 수정하기

리스트는 가변(mutable)입니다. 단일 항목이나 슬라이스를 교체할 수 있습니다.

odd = [2, 4, 6, 8]
odd[0] = 1
print(odd)
odd[1:4] = [3, 5, 7]
print(odd)

출력

[1, 4, 6, 8] [1, 3, 5, 7]

append()(단일), extend()(여러 개)로 요소를 추가합니다. +로 연결, *로 반복도 가능합니다.

odd = [1, 3, 5]
odd.append(7)
print(odd)
odd.extend([9, 11, 13])
print(odd)
print(odd + [9, 7, 5])
print(["re"] * 3)

출력

[1, 3, 5, 7] [1, 3, 5, 7, 9, 11, 13] [1, 3, 5, 9, 7, 5] ['re', 're', 're']

insert()로 특정 인덱스에 삽입하거나, 빈 슬라이스에 할당해 삽입할 수 있습니다.

odd = [1, 9]
odd.insert(1, 3)
print(odd)
odd[2:2] = [5, 7]
print(odd)

출력

[1, 3, 9] [1, 3, 5, 7, 9]

리스트 요소 삭제하기

del로 인덱스나 슬라이스, 또는 리스트 전체를 삭제합니다. remove()는 첫 번째 일치하는 값을, pop()은 인덱스로 요소를 제거하고 반환합니다(인덱스 생략 시 마지막). clear()는 리스트를 비웁니다.

my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']
# 단일 항목 삭제
del my_list[2]
print(my_list)
# 여러 항목 삭제
del my_list[1:5]
print(my_list)
# 리스트 전체 삭제
del my_list
print(my_list)  # NameError

출력

['p', 'r', 'b', 'l', 'e', 'm'] ['p', 'm'] Traceback (most recent call last): File "<string>", line 18, in <module> NameError: name 'my_list' is not defined

슬라이스 할당으로도 삭제 가능:

>>> my_list = ['p','r','o','b','l','e','m']
>>> my_list[2:3] = []
>>> my_list
['p', 'r', 'b', 'l', 'e', 'm']
>>> my_list[2:5] = []
>>> my_list
['p', 'r', 'm']

주요 리스트 메서드

메서드설명
append()끝에 요소 추가
extend()다른 이터러블의 모든 요소 추가
insert()지정된 인덱스에 항목 삽입
remove()첫 번째 일치하는 값 제거
pop()인덱스로 요소 제거 및 반환(생략 시 마지막)
clear()리스트 비우기
index()값의 첫 번째 인덱스 반환
count()값의 출현 횟수 세기
sort()오름차순 정렬
reverse()순서 뒤집기
copy()얕은 복사본 반환
my_list = [3, 8, 1, 6, 8, 8, 4]
my_list.append('a')
print(my_list)
print(my_list.index(8))  # 1
print(my_list.count(8))  # 3

리스트 컴프리헨션

리스트 컴프리헨션은 리스트를 간결하게 생성하는 방법을 제공합니다.

pow2 = [2 ** x for x in range(10)]
print(pow2)

출력

[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]

다음과 동등합니다:

pow2 = []
for x in range(10):
    pow2.append(2 ** x)

컴프리헨션에는 여러 for 절이나 if 필터를 포함할 수 있습니다.

>>> pow2 = [2 ** x for x in range(10) if x > 5]
>>> pow2
[64, 128, 256, 512]
>>> odd = [x for x in range(20) if x % 2 == 1]
>>> odd
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
>>> [x+y for x in ['Python ','C '] for y in ['Language','Programming']]
['Python Language', 'Python Programming', 'C Language', 'C Programming']

자세한 내용은 공식 Python 문서를 참조하세요.


기타 리스트 연산

멤버십 테스트

in 또는 not in으로 값 존재 여부 확인.

my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']
print('p' in my_list)   # True
print('a' in my_list)   # False
print('c' not in my_list)  # True

출력

True False True

리스트 순회하기

for 루프로 각 항목 처리.

for fruit in ['apple','banana','mango']:
    print("I like", fruit)

출력

I like apple I like banana I like mango

python

  1. 파이썬 데이터 타입 마스터하기: 실전 가이드
  2. 파이썬 연산자 마스터하기: 종합 가이드
  3. 파이썬 pass 문 마스터하기: 실전 가이드
  4. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  5. Python time.sleep() 완전 정복: 모범 사례, 멀티스레딩, 실전 예제
  6. 파이썬 리스트 마스터하기: Append, 정렬, 길이 & 리스트 컴프리헨션 실전 가이드
  7. 파이썬으로 평균 계산하기: 실전 가이드
  8. 파이썬 list.count() 전문가 가이드: 실전 예제로 배우는 요소 개수 세기
  9. 파이썬 리스트에서 중복 요소 제거하는 8가지 방법
  10. 파이썬 리스트에서 항목 제거하기: remove(), pop(), clear(), del 완벽 가이드