파이썬 리스트 자료형

리스트는 여러 개의 데이터르 연속적으로 담아 처리하기 위해 사용할 수 있다.

파이썬의 리스트 자료형은 C나 자바와 같은 프로그래밍 언어의 배열 기능을 포함

내부적으로는 연결리스트 자료구조를 채택 하고 있어
append(), remove()등의 메서드를 지원한다.

리스트는 대괄호([]) 안에 원소를 넣어 초기화하며, 쉼표(,)로 원소를 구분한다.

 a=[1,2,3,4,5,6,7,8,9]

print(a) #[1,2,3,4,5,6,7,8,9]


#인덱스 4 즉 다섯 번쨰 원소에 접근
print(a[4]) #5

#빈 리스트 선언 방법 1
a = list()
print(a) #[]

#빈 리스트 선언 방법 2
a=[]
print(a) #[]
리스트의 인덱싱과 슬라이싱

인덱스값을 입력하여 리스트의 특정한 원소에 접근하는 것을 인덱싱이라고 한다.
파이썬의 인덱스값은 양의 정수와 음의 정수를 모두 사용할 수 있으며, 음의 정수를 넣으면 우너소를 거꾸로 탐색하게 된다.

a=[1,2,3,4,5,6,7,8,9]
print(a) # [1,2,3,4,5,6,7,8,9]

#뒤에서 첫 번째 원소 출력
print(a[-1]) #9


#뒤에서 세 번쨰 원소 출력
print(a[-3]) # 7


#네 번째 원소 값 변경a
a[3]=7

print(a) # [1,2,7,4,5,6,7,8,9]

#슬라이싱 대괄호 안에 추가 print(a[시작인덱스 : 끝인덱스]) 
# 끝인덱스의 경우 1을 뺸 값의 인덱스까지 처리 된다.

print(a[1:4]) #[2,7,4]

리스트 컴프리헨션

리스트 컴프리헨션은 리스트를 초기화하는 방법 중 하나이다
대괄호 안에 조건문과 반복문을 넣는 방식으로 리스트를 초기화할 수 있다.

# 0부터 19까지의 수 중에서 홀수만 포함하는 리스트

array = [i for i in range(20) if i % 2 ==1 ]

print(array)# [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]


#위에식을 일반적인 소스코드로 작성
array = []
for i in range(20):
    if i % 2 ==1 :
        array.append(i) 


print(array) #[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
      

#1부터 9까지의 수의 제곱 값을 포함하는 리스트
array = [i*i for i in range(1,10)]

print(array) #[1, 4, 9, 16, 25, 36, 49, 64, 81]

#삼항연산자
#[true_value] if [condition] else [false_value]
numbers3 = [ 2 if i<4 else 3  for i in range(10)  ]
#numbers3 = [2, 3, 2, 3, 2, 3, 2, 3, 2, 3] 

print("numbers3 =",numbers3)

#리스트 컴프리헨션은 2차원 리스트를 초기화 할 떄 매우 효과적
# N * M 크기의 2차원 리스트 초기화

n=3 
m=4
array =[[0] * m for _ in range(n)]
print(array) # [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

언더바역할
파이썬 자료구조/알고리즘에서는 반복을 수행하되 반복을 위한 변수의 값을 무시하고자 할 떄 언더바(_)를 자주 사용한다.

for _ in range(5):
	print("hello world")
특정한 크기를 가지는 2차원 리스트를 초기화 할때에는 리스트 컴프리헨션을 이용해야 한다

리스트 관련 기타 메서드

a = [1,4,3]

print("기본 리스트:",a)

#리스트에 원소 삽입 
a.append(2)
print("삽입",a)

# 오름차순 정렬
a.sort()
print("오름차순 정렬",a)

#내림차순 정렬
a.sort(reverse = True)
print("내림차순 정렬: ",a)

# 리스트 원소 뒤집기
a.reverse()
print("원소 뒤집기",a)

# 특정 인데스에 데이터 추가
a.insert(2,3)
print("인덱스 2에 3 추가:",a)

#특정 값인 데이터 개수 세기
print("값이 3인 데이터 개수:",a.count(3))

#특정 값 데이터 삭제
a.remove(1)
print("값이 1인 데이터 삭제:",a)

특정한 값을 가지는 모든 원소 제거하기

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

remove_set = {3,5}

#remove_set 에 포함되지 않은 값만을 저장
result= [ i for i in a if i not in remove_set]
print(result)

리스트 복사하기


a = [1,2,3]
b=a[:] # 리스트 복사 
a[1]=3 
print(a) # [1,3,3]
print(b)#[1,2,3]

좋은 웹페이지 즐겨찾기