본문 바로가기
프로그래밍 언어/Python

[python] 파이썬 리스트 (list)

by 까망 하르방 2021. 8. 21.
반응형

리스트(list)는 배열 같은 것으로 대괄호 []를 이용한다.

 

원소 삽입

insert(idx, val) idx 위치에 val 원소 삽입 (기존 원소가 존재한다면 뒤로 밀린다.)

a = [1, 2, 3]
a.insert(0, 4)
print(a)         # [4, 1, 2, 3]

append와 extend

x = [1,2,3]
x.append([4,5])
print(x) # [1, 2, 3, [4, 5]]

y = [1,2,3]
y.extend([4,5])
print(y) # [1, 2, 3, 4, 5]

 

append() 에서 원소 한개만 주면, extend와 동일한 효과를 가지게 할 수 있다.

x = [1,2,3]
x.append([4])
print(x) # [1, 2, 3, [4]]

x = [1,2,3]
x.append(4)
print(x) # [1, 2, 3, 4]

 

 

 

+ 리스트 원소 더하기

* 리스트 원소 반복

len 리스트 길이

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

print(a + b)                 # [1, 2, 3, 4, 5, 6]
print(a * 3)    # [1, 2, 3, 1, 2, 3, 1, 2, 3]
print(len(len(a))        # 3

 

원소 변경과 삭제

del / remove / pop를 이용해서 삭제할 수 있다.

- remove의 경우 동일한 원소가 있는 경우 첫번째 원소만 제거 한다.

- pop(idx)은 idx 번째 요소를 반환하고 해당 원속 삭제

                     인자가 없으면 맨 마지막 원소를 반환하면서 삭제

scores = [1, 2, 3, 3]
scores[0] = 100
print(scores) # [100, 2, 3, 3]

del scores[1]
print(scores) # [100, 3, 3]

scores.remove(3)
print(scores) # [100, 3]

scores.pop()
print(scores) # [100]

 

list 탐색

range(1, X)의 의미는 1부터 X-1까지의 숫자를 의미

ex) range(10)하면 0부터 9까지의 정수가 생성된다.

sum = 0
for x in range(10):
    sum = sum + x
print(sum)

 

문자열도 시퀀스 일부로 처리 가능 (문자열 인덱싱 O)

for c in "abcdef":
    print(c, end="") # abcdef

 

리스트는 for in 구문이 가능하다.

for i in [1, 3, 2]:
    print(i, end=" ") # 1 3 2

 

원소 위치 반환

index(val) 리스트에 x 값이 있으면 x의 위치 값 반환 (없으면 Error)

a = [1,2,3]
print(a.index(1))        # 0

 

count(val) 리스트 안에 원소 val 개수 반환

a = [1,2,3,1]
print(a.count(1))     # 2

 

max / min로 최대값/최소값을 반환

a = [1, 2, 3]
print(max(a))    # 3
print(min(a))    # 1

 

list 특정 구간 슬라이싱(slicing)

squares = [0,1,4,9]
print(squares[0:1]) #[0]

 

list 원소 정렬(sort)

list = [4, 1, 3, 2]
list.sort()
print(list) #[1, 2, 3, 4]

A = [3,1,2]
B = sorted(A)
print(B) #[1, 2, 3]

A.sort(reverse = True)
print(A) #[3, 2, 1]

 

Sequence type과 reversed 함수

s1 = 'Hello' #문자열
t1 = (1, 2, 3, 4) #튜플
l1 = [10, 20, 30, 40] #리스트
r1 = range(100, 105) #range

s2 = reversed(s1)
t2 = reversed(t1)
l2 = reversed(l1)
r2 = reversed(r1)

print(s1, type(s2), ''.join(s2))
print(t1, *t2)
print(l1, *l2)
print(*r1, *r2)

 

Comprehension 표현

target = [3, 4, 5]
list = [x**2 for x in target]
print(list)

M = [x for x in range(10) if x % 2 == 0]
print(M)

반응형

댓글