본문 바로가기
Python 파이썬/기초 & 내장모듈

python ) 리스트 list와 튜플 tuple

by 하이방가루 2022. 3. 7.
728x90
반응형

리스트 list

  여러 가지 자료를 순차적으로 여러 개 저장해주는 자료형태

  대괄호( [ ] ) 내부에 자료들을 넣어 선언해줄 수 있다.

 

요소

  리스트 안에 있는 자료를 뜻한다

  ex) [요소, 요소, 요소]

  리스트도 요소가 될 수 있다.

 

인덱스

  자료의 위치를 말한다.

  문자열과 마찬가지로 0부터 시작한다.

  인덱스를 사용하면 값을 수정할 수 있다.

list_a = [1,2,3,4]
list_a[0] = 0
print(list_a) # [0, 2, 3, 4]

 

연산자

  + : 문자열과 마찬가지로 두 피연산자를 연결해준다.

    ex) print( [1,2] + [3,4] ) -> [1,2,3,4]

  * : 문자열과 마찬가지로 좌항의 리스트를 우항의 정수만큼 반복한다.

 

len()

  문자열과 마찬가지로 리스트의 길이를 반환한다.

  ex) len(list_a)

 

.append(값)

  리스트에 값을 추가한다.

 

.extend(리스트)

  리스트에 리스트를 연결해준다.

 

.insert(인덱스,값)

  해당하는 인덱스에 값을 삽입한다.

 

.remove(값)

  리스트에 값이 있을 경우 제거한다.

  만약 리스트 안에 값이 없을 경우 ValueError가 발생한다.

 

.pop(인덱스)

  해당하는 인덱스에 값을 반환하고 리스트에서 삭제한다.

  인덱스를 넣지 않을 경우 마지막 인덱스의 값을 반환하고 삭제한다.

 

del 리스트[인덱스]

  해당하는 인덱스의 값을 제거한다.

 

.clear()

  리스트의 모든 요소를 제거한다.

 

값 in 리스트

  리스트 안에 값이 있으면 True

 

값 not in 리스트

  리스트 안에 값이 없으면 True

list_a = [1,2]
list_b = [3,4]

list_a.append( list_b )
print(list_a) # [1, 2, [3, 4]]

list_b.extend(list_a)
print(list_b) # [3, 4, 1, 2, [3, 4]]

list_a.insert( 2, 'str' )
print(list_a) # [1, 2, 'str']

list_b.remove(2)
print(list_b) # [3, 4, 1, [3, 4]]

list_b.pop()
print(list_b) # [3, 4, 1]

list_a.pop(0)
print(list_a) # [2, 'str']

del list_a[0]
print(list_a) # ['str']

list_a.clear()
print(list_a) # []

print( 1 in list_b ) # True
print( 2 not in list_b ) #True

min(리스트)

  리스트의 요소들 중 최소값을 반환한다.

  ex) min([1, 2, 3, 4, 5]) -> 1

 

max(리스트)

  리스트의 요소들 중 최대값을 반환한다.

  ex) max([1, 2, 3, 4, 5]) -> 5

 

sum(리스트)

  리스트 요소들의 총 합계를 반환한다.

  ex) sum([1, 2, 3, 4, 5]) -> 15

 

enumerate(리스트)

  리스트에서 인덱스와 요소를 차례대로 반환한다.

 

zip(리스트a, 리스트b)

  두 리스트의 요소를 짝지어 차례대로 반환한다.

  두 리스트의 길이가 다를 경우, 길이가 작은 리스트만큼 반환한다.

 

reversed(리스트)

  리스트에서 요소의 순서를 뒤집어 주는데 이터레이터를 반환한다.

list_a = [ 1, 2, 3, 4, 5]
list_b = [ 3, 6, 9]

# enumerate()
print( enumerate( list_b ) ) # <enumerate object at 메모리주소>
print( list( enumerate( list_b ) ) ) # [(0, 3), (1, 6), (2, 9)]
for i, item in enumerate(list_b) :
  print( '{}번째 요소 : {}'.format(i, item) )
# 실행결과
# 0번째 요소 : 3
# 1번째 요소 : 6
# 2번째 요소 : 9

# zip()
print( zip( list_a, list_b ) ) # <zip object at 메모리주소>
print( list( zip( list_a, list_b ) ) ) # [(1, 3), (2, 6), (3, 9)]
for a_item, b_item in enumerate(list_a, list_b) :
  print( a_item, b_item )
# 실행결과
# 1 3
# 2 6
# 3 9

# reversed()
print( reversed( list_b ) ) # <list_reverseiteratior object at 메모리주소>
print( list( reversed( list_b ) ) ) # [(0, 3), (1, 6), (2, 9)]
for i in reversed(list_b) :
  print( i )
# 실행결과
# 9
# 6
# 3

#reversed() 주의사항
temp = reversed(list_b)
for i in temp :
  print( '첫 번째 반복문: {}'.format(i) )
for i in temp :
  print( '두 번째 반복문: {}'.format(i) )
# 실행결과
# 첫 번째 반복문: 9
# 첫 번째 반복문: 6
# 첫 번째 반복문: 3
# 두 번째 반복문은 전혀 출력되지 않는다.
#자세한 것은 이터레이터와 제너레이터 참고

.sort()

  오름차순으로 리스트 내의 요소들을 정렬한다.

  reverse=True 옵션을 주면 내리차순으로 리스트 내의 요소들을 정렬한다.

 

sorted(리스트)

  오름차순으로 리스트 내의 요소들을 반환한다..

  reverse=True 옵션을 주면 내리차순으로 리스트 내의 요소들을 반환한다.

list_data = [1,5,2,8,4,9,3,10]

new_list = sorted( list_data )

print( list_data ) # [1,5,2,8,4,9,3,10]
print( new_list ) # [1,2,3,4,5,8,9,10]

new_list = sorted( list_data, reverse=True )
print( new_list ) # [10,9,8,5,4,3,2,1]
######################
new_list = list_data.sort()

print( list_data ) # [1,2,3,4,5,8,9,10]
print( new_list ) # None

list_data.sort( reverse=True )
print( list_data ) # [10,9,8,5,4,3,2,1]

 

튜플 tuple

  리스트와 사용법이 같으나 값을 지우거나 수정할 수 없는 순차적인 자료형

  기호를 생략하여 값을 넣을 수 있다.

# 정석
tuple_a = ( 1, 2, 3, 4, 5 )

# 기호 생략
tuple_b = 10, 20, 30, 40, 50

# 특별한 사용
a, b = 10, 20
print(a) # ( 10, )
print(b) # ( 20, )

tuple_a, tuple_b = tuple_b, tuple_a
print(tuple_a) # ( 10, 20, 30, 40, 50 )
print(tuple_b) # ( 1, 2, 3, 4, 5 )

# del a[0]  # TypeError: 'tuple' object doesn't support item deletion
# a[0] = 20 # TypeError: 'tuple' object does not support item assignment
a = 20
print(a) # 20
print( type(a) ) # <class 'int'>

print( len(tuple_a) ) # 5
print( tuple_a + tuple_b ) # ( 10, 20, 30, 40, 50, 1, 2, 3, 4, 5 )
print( tuple_a * 2 ) # ( 10, 20, 30, 40, 50, 10, 20, 30, 40, 50 )
print( tuple_a[1:-1] # ( 20, 30, 40 )

print(tuple_a) # ( 10, 20, 30, 40, 50 )
print(tuple_b) # ( 1, 2, 3, 4, 5 )
728x90
반응형

댓글