[python] 데이터 타입 (4) 리스트 자료형

김재현·2023년 2월 26일
0

Python Grammar

목록 보기
5/12

1. 리스트 자료형

리스트 자료형은 대괄호 안에 요소를 쉼표로 구분하여 입력합니다. '배열' 혹은 '테이블'이라고 부르기도 합니다.


2. 리스트 기본

2.1 리스트 생성

  • 빈 리스트를 생성하는 방법은 다음과 같습니다.
list_a = []
list_b = list()
  • range 함수를 함께 사용하여 리스트를 만들기도 합니다.
list_c = list(range(3))
print(list_c)

[0, 1, 2]

  • 내부의 요소를 반복문을 통해 넣을 수도 있습니다.
sample= [0 for _ in range(5)]
print(sample)

[0, 0, 0, 0, 0]


2.2 연결, 반복, 요소길이

# 리스트 샘플
list_a = [1, 2, 3]
list_b = [4, 5, 6]
  • list_a + list_b = [1, 2, 3, 4, 5, 6]
  • list_a * 3 = [1, 2, 3, 1, 2, 3]
  • len(list_a) = 3

2.3 리스트 추가

  • 리스트명.append(요소)
  • 리스트명.insert(위치, 요소)
  • 리스트_a.extend(리스트_b) : 다수의 자료 추가

2.4 리스트 요소 제거

  • del 리스트명[인덱스]
  • 리스트명.pop(인덱스)
  • 리스트명.remove(값)
  • 리스트명.clear()

2.5 리스트 슬라이싱

  • 리스트명[:]
  • 리스트명[slice()]

2.6 리스트 요소 갯수, 위치

  • 리스트명.count(값)
  • 리스트명.index()

2.7 리스트 요소 인덱스 번호 확인(enumerate())

  • enumerate는 튜플로 값을 반환합니다.
array = ['a', 'b', 'c']

for i, value in enumerate(array)
  print("{}번째 요소는 {}입니다.".format(i, value))

0번째 요소는 a입니다.
1번째 요소는 b입니다.
2번째 요소는 c입니다.


2.8 리스트 내부 리스트 조회

players = [ ['수비', '김민재'], ['미드필더', '황인범'], ['공격수', '황희찬'] ]

for position, player in players:
   print('{} 포지션 : {}'.format(position, player))

수비 포지션 : 김민재
미드필더 포지션 : 황인범
공격수 포지션 : 황희찬


2.9 리스트 정렬

  • 오름차순 정렬 : 리스트명.sort()
  • 내림차순 정렬 : 리스트명.sort(reverse=True)

2.10 셔플(shuffle)

import random as r

sample = list(range(10+1))
print(sample)

r.shuffle(sample)
print(sample)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10][7, 1, 2, 0, 6, 9, 3, 10, 5, 4, 8]


2.11 리스트 요소 뒤집기(reversed())

list = [1, 2, 3, 4, 5]
list_reversed = reversed(list)
print(list_reversed)

[5, 4, 3, 2, 1]


2.12 최소,최대,합

함수기능
min()리스트 내부에서 최솟값을 찾습니다.
max()리스트 내부에서 최댓값을 찾습니다.
sum()리스트 내부의 값을 모두 더합니다.

2.13 자료형 확인

  • isinstance(data,list)
  • 해당 데이터가 리스트인지 확인합니다.

3. 리스트 활용

3.1 리스트 with 반복문

  • 리스트 요소에 접근하는 두 가지 방법입니다.
a = list(range(5))

# 첫번째 방법
for i in a:
   print(i)

# 두번째 방법
for i in range(len(a)):
   print(a[i])

0
1
2
3
4


3.2 리스트 내포(List comprehension)

  • 리스트명 = [ 표현식 for 반복자 in 반복할 수 있는 것 if 조건문]
array = []
for i in range(0, 20, 2):
  array.append(i*i)

위의 코드 세줄을 다음과 같이 한 줄로 표현할 수 있습니다.

array = [i*i for i in range(0, 20, 2)]
  • 리스트 내포 활용
# a=[0,0,0]을 만드는 세가지 방법

# case1. * 사용
a=[0]*3

# case2. 반복문
a=[]
for i in range(3):
   a.append(0)

# case3. 리스트 내포
a = [0 for i in range(3)]

3.3 2차원 리스트

  • 2차원 리스트 생성 방법
n = 4
m = 3
array = [[0]*m for _ in range(n)]
print(array)

[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]


3.3.1 2차원 리스트 값 선택

# [[1행],[2행],[3행]]   
# [[1열,2열,3열],[1열,2열,3열],[1열,2열,3열]]
a = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

# 2차원 리스트 a의 1행, 1열의 값
# a[행 인덱스번호][열 인덱스번호]
# 할당연산자로 값을 할당할 수 있습니다.
a[1][1]=1

print(a)

[[0, 0, 0], [0, 1, 0], [0, 0, 0]]


3.3.2 2차원 리스트 반복문

a = [[1,0,0],[0,2,0],[0,0,3]]

for i in a:
    for j in i:
        print(j, end='')
    print()

100
020
003


4. 참고 자료

0개의 댓글