Engineering Note

[Python] 리스트와 내장함수 본문

Programming Language/Python

[Python] 리스트와 내장함수

Software Engineer Kim 2021. 5. 29. 12:19

리스트

  • 순서를 갖는 연속되 데이터를 저장하는 파이썬의 자료구조, C의 배열과 유사하면서 동적으로 할당 가능

리스트 선언 방법

  • a = []
  • a = [1,2,3,4,5] #선언과 동시에 초기화
  • b= list()
  • b = list(range(1,11)) # list, range 함수를 사용하여 1~10까지 list 값 초기화 하면서 리스트 선언
  • c = a+b #a,b를 합쳐서 c라는 리스트 새로 생성하기
  • a[0] #a의 첫 번째 인덱스 접근

리스트 내장함수

  • append
    • a.append(6) # 리스트의 마지막에 데이터 6추가
  • insert
    • a.insert(3,7) # 리스트의 3번인덱스에 데이터 7추가 기존 3번인덱스가 있었다면 4번 인덱스로 이동
  • pop
    • a.pop() # a 리스트의 마지막 인덱스 제거
    • a.pop(3) # a 리스트의 3번 인덱스 제거
  • remove
    • a.remove(4) # a 리스트에서 데이터 4를 찾아 제거
  • index
    • a.index(5) # a 리스트에서 데이터 5를 찾아 5데이터의 인덱스 값 반환
  • sort
    • a.sort() # a 리스트를 오름차순으로 정렬
    • a.sort(reverse = True) # a 리스트를 내림차순으로 정렬
  • min
    • min(a) # a 리스트에서 가장 작은 값 찾기
  • max
    • max(a) # a 리스트에서 가장 큰 값 찾기
  • clear
    • a.clear() # a리스트 원소 모두 제거
  • len
    • len(a) # a 리스트의 저장된 요소의 개수, 길이를 반환함
  • 슬라이싱
    • 문자열과 마찬가지로 대괄호 연산자를 이용해 리스트 요소들을 슬라이싱 할 수 있다. a[:] 사용기호는 대괄호 이지만 범위는 수학기호에서 [)의 현상을 나타낸다.
  • enmerate
    • enumerate(a) # a 리스트의 요소와 인덱스를 각각 추출 할 수 있다. 또는 튜플 형태로 추출도 가능

리스트 접근 방법

  • 인덱스 값으로 접근 가능
    • a = [10,20,30]
      • a[0] # a 리스트의 첫 번째 요소 접근
  • 리스트 객체 자체로 접근
  • for x in a: # for문에서 a 리스트의 요소 각각은 x에 차례로 저장된다.

리스트의 응용

  • for문에서 range 함수와 len 함수를 이용해서 리스트를 출력하도록 할 수 있다.
    • len을 통해 리스트의 길이를 반환하여 range 함수의 인수로 전달해주면 range 함수는 0부터 마지막 인덱스(길이-1)까지 길이를 생성하고 in 을통해 0부터 i에 넣으면서 출력할 할 수 있다.
    • for i in range(len(a)): print(a[i], end=' ') print()
  • enumerate 함수와 for문을 사용해서 각 요소의 인덱스와 값을 동시에 출력하도록 할 수 있다.
    • for x in enumerate(a): # x에는 a의 각 요소들이 튜플 형태로 (인덱스번호, 값)으로 저장된다.
    • print(x)로 튜플을 출력하도록 할 수 있고 x[0],x[1]을 통해 0,1 인덱스를 각각 접근하도록 할 수 도 있다.
    • for index, value in enumerate(a): # a의 각 요소들을 index변수에는 인덱스 번호를 value변수에는 요소의 값을 저장 하도록 할 수 있다.
a = [10,20,30,40]

for x in enumerate(a):
    print(x)

print()
b = (1,2,3,4,5)
print(b[0])
#b[0] = 7 ##튜플은 자료 변경 불가
print()



for x in enumerate(a):
    print(x[0],x[1]) 
print()

for index, value in enumerate(a):
    print(index, value)
print()

for x in a:
    print(x)

함께 사용하면 유용한 함수

  • all
    • if all(60>x for x in a): # 리스트의 각 요소를 x에 담고 x 값과 60과 비교하여 모든 요소가 60보다 작다가 '참'일 경우 다음 문장 수행
  • any
    • if any(11>x for x in a): # 리스트의 각 요소를 x에 담고 x 값과 11과 비교하여 어느 한 요소라도 11보다 작다가 '참'일 경우 다음 문장 수행
if all(60>x for x in a):
    print("Yes")
else:
    print("NO")


if any(11>x for x in a):
    print("Yes")
else:
    print("NO")
Comments