별의 공부 블로그 🧑🏻‍💻
728x90
728x170

리스트(List)

리스트(List)

  • 하나씩 사용하던 변수를 한 줄로 붙여 놓은 것
  • 다른 프로그래밍 언어의 배열(Array)과 비슷한 개념이다.

 

리스트 생성과 사용법

1차원 리스트

리스트이름 = [값1, 값2, 값3, ...]
  • 리스트는 대괄호([ ]) 안에 값을 선언한다.
  • 리스트는 첨자를 사용하여 접근한다.
    • 예) aa[0] : 리스트의 첫번째 요소에 접근

 

예 : 1차원 리스트 생성하기
aa = [10, 20, 30, 40]
aa
더보기
[10, 20, 30, 40]

 

 

2차원 리스트

리스트이름 = [[값1, 값2, 값3, ...], [값1, 값2, 값3, ...], ...]
  • 첨자를 2개 사용하여 각 항목에 접근한다.
    • 예) aa[0][1] 

 

예 : 2차원 리스트 생성하기
list1 = []
list2 = []
value = 1

for i in range(0, 3):
    for k in range(0, 4):
        list1.append(value)
        value += 1
    list2.append(list1)
    list1 = []

for i in range(0, 3):
    for k in range(0, 4):
        print("%3d" % list2[i][k], end= " ")
    print(" ")
더보기
  1   2   3   4  
  5   6   7   8
  9  10  11  12

 

 

리스트 값에 접근하는 방법

리스트이름[첨자]            # 1차원 리스트
리스트이름[첨자1][첨자2]     # 2차원 리스트
  • 생성된 리스트는 첨자로 접근할 수 있다.
  • 첨자는 맨 뒤부터 -1 값으로 사용한다.
리스트


-9 -8 -7 -6 -5 -4 -3 -2 -1
0 1 2 3 4 5 6 7 8
요소 a b c d e f g h i

 

  • 리스트에 접근할 때 콜론(:)을 사용하여 범위를 지정할 수 있다.
리스트이름[시작값:끝값+1]

 

aa = [10, 20, 30, 40]
aa[0:3]                 # [10, 20, 30]
aa[2:4]                 # [30, 40]

 

  • 콜론의 앞이나 뒤 숫자를 생략할 수도 있다.
aa = [10, 20, 30, 40]
aa[2:]                 # [30, 40]
aa[:2]                 # [10, 20]

 

리스트 조작 함수

함수 설명 사용법
append() 리스트 맨 뒤에 항목을 추가한다. 리스트이름.append(값)
pop() 리스트 맨 뒤의 항목을 빼낸다. (리스트에서 해당 항목을 삭제한다.) 리스트이름.pop()
sort() 리스트의 항목을 정렬한다. 리스트이름.short()
reverse() 리스트 항목의 순서를 역순으로 만든다. 리스트이름.reverse()
index() 지정한 값을 찾아 위치를 반환한다. 리스트이름.index(찾을값)
insert() 지정한 위치에 값을 삽입한다. 리스트이름.insert(위치, 값)
remove() - 리스트에서 지정한 값을 제거한다.
- 단, 지정한 값이 여러 개이면 첫 번째 값만 지운다.
리스트이름.remove(지울값)
extend() - 리스트 뒤에 리스트를 추가한다.
- 리스트의 더하기(+) 연산과 기능이 동일하다.
리스트이름.extend(추가할리스트)
count() 리스트에서 해당 값의 개수를 센다. 리스트이름.count(찾을값)
clear() 리스트 내용을 모두 지운다. 리스트이름.clear()
del() 리스트에서 해당 위치의 항목을 삭제한다. del(리스트이름[위치])
len() 리스트에 포함된 전체 항목의 개수를 센다. len(리스트이름)
copy() 리스트 내용을 새로운 리스트에 복사한다. 새리스트 = 리스트이름.copy()
sorted() 리스트의 항목을 정렬해서 새로운 리스트에 대입한다. 새리스트 = sorted(리스트)

 

사용 예

myList = [30, 10, 20]
print("현재 리스트 : %s" % myList)

myList.append(40)
print("append(40) 후의 리스트 : %s" % myList)

print("pop()으로 추출한 값 : %s" % myList.pop())
print("pop() 후의 리스트 : %s" % myList)

myList.sort()
print("sort() 후의 리스트 : %s" % myList)

myList.reverse()
print("reverse() 후의 리스트 : %s" % myList)

print("20 값의 위치 : %d" % myList.index(20))

myList.insert(2, 222)
print("insert(2, 222) 후의 리스트 : %s" % myList)

myList.remove(222)
print("remove(222) 후의 리스트 : %s" % myList)

myList.extend([77, 88, 77])
print("extend([77, 88, 77]) 후의 리스트 : %s" % myList)

print("77 값의 개수 : %d" % myList.count(77))
더보기
현재 리스트 : [30, 10, 20]
append(40) 후의 리스트 : [30, 10, 20, 40]
pop()으로 추출한 값 : 40
pop() 후의 리스트 : [30, 10, 20]
sort() 후의 리스트 : [10, 20, 30]
reverse() 후의 리스트 : [30, 20, 10]
20 값의 위치 : 1
insert(2, 222) 후의 리스트 : [30, 20, 222, 10]
remove(222) 후의 리스트 : [30, 20, 10]
extend([77, 88, 77]) 후의 리스트 : [30, 20, 10, 77, 88, 77]
77 값의 개수 : 2

 

컴프리핸션(Comprehension, 함축)

  • 순차적인 리스트를 한 줄로 만드는 간단한 방법

 

1차원 리스트

리스트 = [수식 for 항목 in range() if 조건식]

 

사용 예
# 일반적인 방법으로 리스트 만들기
numList = []
for num in range(1, 6):
    numList.append(num)
    
# 컴프리헨션을 이용한 리스트 만들기
numList = [num for num in range(1, 6)]

# if 문 사용 하기 : 1~20 숫자 중에서 3의 배수로만 리스트 구성하기
numList = [num for num in range(1, 21) if num % 3 == 0]

 

2차원 리스트

리스트 = [[수식 for 항목 in range()] for 항목 in range()]

 

사용 예
list2 = [[0 for _ in range(4)] for _ in range(3)]    # [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

 

728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖