4 분 소요

컬렉션 - 데이터를 수집

알고리즘

- 문제를 해결하기 위한 순서 또는 절차.
	[빵집]
	반죽 -> 발효 -> 굽기 -> 데코 -> 포장 -> 판매

자료구조

- 의미없는 데이터가 자료구조를 통과하는 순간	하나의 정보가 된다.
	10  //의미없는 데이터
	age = 10   //정보
- 데이터를 저장공간에 담는 순간 하나의 정보가 된다.

list

	num1 = 1252
	num2 = 32
	num3 = 4389
	num4 = 32910
	...
	num100 = 2187391
- 변수를  여러번 선언하지 않고 여러 칸 list를 한 번만 선언하기 위해서 사용.   - 변수를 선언하면, 값이 한 개만 담기고, 이름도 반드시 붙여야 한다.
- 여러 변수를 선언하면 이름도 많아져서 관리하기 불편하다.
- 따라서 list는 이름 하나고 각 값을 방번호(인덱스)로 접근하기 때문에
- 값을 관리하기 훨씬 편하고 쉽다.
- 규칙성이 없는 값에 규칙성을 부여하기 위해서
	"한동석"	"지우개"	"마우스"	"핫도그"	"배고파"	"맛있다"
      0                        1                              2                          3                            4                          5

	0부터 5까지 1씩 증가 (list에 담으면 규칙성이 생긴다)

list 선언

- 대괄호면 list다.   ```py
list명 = [값1, 값2,.....]
list명 = [값] * 칸수
list명 = []   ```

list 길이

   - len(list명)

list 사용

`dataList = [1, 2, 3]`

- 값 넣기 <br>
	(추가) <br>
	dataList.append(4) <br>
	결과 : [1, 2, 3, 4] <br>

	(삽입) <br>
	dataList.insert(인덱스번호, 값) <br>
	dataList.insert(1, 1.5) <br>
	결과 : [1, 1.5, 2, 3] <br>

- 값 삭제 <br>
	dataList.remove(값) <br>
	[1, 2, 3, 1].remove(1) <br>
	결과 : [2, 3, 1]<br>
	중복 시 좌에서 우 방향으로 가장 먼저 만난 값의 인덱스 번호를	가져온다.

	del dataList[인덱스번호]<br>
	del dataList[1]<br>
	결과 : [1, 3]<br>

	dataList.clear()<br>
	모든 값 삭제<br>

- 값 검색<br>
	dataList.index(값)<br>
	dataList.index(3)<br>
	결과 : 2<br>

	중복 시 좌에서 우 방향으로 가장 먼저 만난 값의 인덱스 번호를	가져온다. <br>

- 값 수정<br>
	dataList[인덱스번호] = 새로운 값<br>
	dataList[0] = 10<br>
결과 : [10, 2, 3] 

for문 사용

  • 0, ?, 1 –> ?로 사용 가능
      for i in range(len(list명)) : 
      list명[i]	//리스트의 각 요소
    

빠른 for문(향상된 for문, forEach문)

	for i in list명:
		i	//리스트의 각 요소

값의 유무 확인

	값 in list명 : 조건식(참 또는 거짓의 값) list안에 값이 있으면 True!
	값 not in list명 : list안에 값이 없으면 True!

list test

dataList = [2, 4, 5, 6]
print(len(dataList))
print(dataList[2])
print(dataList)

image

dataList.append(7)
print(dataList)

dataList.insert(1, 3)
print(dataList)

print(dataList.index(7))

if(-100 in dataList):
    print(dataList.index(-100))
else:
    print("해당 값은 리스트에 없습니다.")

image

dataList.remove(4)
print(dataList)

del dataList[4]
print(dataList)

dataList[0] = 20
print(dataList)

print(dataList[-1])
print(dataList[-4])

print(dataList[0:3])  // 0인덱스부터 3인덱스까지
print(dataList[1:2])  // 1인덱스부터 2인덱스까지
print(type(dataList[1:2])) // 1인덱스부터 2인덱스까지 타입확인

image

dataList = [0] * 100

print(len(dataList))

for i in dataList:
    print(i)
cnt = 1
 
 for i in dataList:
     i = cnt
     cnt += 1
     
 print(dataList)
for i in range(len(dataList)):
    dataList[i] = i + 1
print(dataList)

image

dataList = list(range(5))    // 0~4까지의 숫자를 list로 강제형변환 하면 리스트로 출력됨
print(dataList)

image

dataList = list(range(1, 10, 2))  // 1부터시작해서 10까지 2 증가
print(dataList)

image

list 연습

# 1~100까지 값 넣고 출력
# 1~100까지 중 짝수만 넣고 출력
# A~F까지 넣고 출력
# A~F까지 중 C 제외하고 출력
# aBcDeFgHiJkLmNoPqRs...Z 넣고 출력
# "ABC"에서 B를 Z로 변경하기
# 
# 자연수를 한글로 변경하기
# 입력 예)1024
# 출력 예)일공이사
# =============================================================================

# 1~100까지 값 넣고 출력
# dataList = []
# for i in range(100):
#     # dataList[i] = i + 1
#     dataList.append(i+1)

# print(dataList)

# dataList = [0] * 100

# for i in range(100):
#     dataList[i] = i+1

# print(dataList)

# 1~100까지 중 짝수만 넣고 출력
# dataList = [0] * 50

# for i in range(len(dataList)):
#     dataList[i] = (i+1) * 2
    
# print(dataList)

# A~F까지 넣고 출력
# dataList = []
# for i in range(6) :
#     dataList.append(chr(65 + i))

# print(dataList)

# A~F까지 중 C 제외하고 출력
# dataList = [""] * 5
# 0 A, 1 B, 2 D

# for i in range(len(dataList)):
#     dataList[i] = chr((i + 1 if i > 1 else i) + 65)

# print(dataList)


# temp = 0

# for i in range(len(dataList)):
#     temp = i
#     if temp > 1 :
#         temp += 1
#     dataList[i] = chr(65 + temp)

# print(dataList)


# for i in range(len(dataList)):
#     if i > 1 :
#         i += 1
#     print(i)
#     dataList[i] = chr(65 + i)

# print(dataList)

# aBcDeFgHiJkLmNoPqRs...Z 넣고 출력
# dataList = [""] * 26

# for i in range(len(dataList)):
#     dataList[i] = chr(97 + i if i % 2 == 0 else 65 + i)

# print(dataList)

# for i in dataList:
#     print(i, end="")

# "abcd" : 문자열
# strList = "abcd"
# print(strList[0])

# "ABC"에서 B를 Z로 변경하기
# strList = "ABC"
# # strList[1] = "Z"
# # print(strList)
# print(strList.replace("B", "Z"))
# strList = strList.replace("B", "Z")
# print(strList)

# 자연수를 한글로 변경하기
# 입력 예)1024
# 출력 예)일공이사

# =============================================================================
# 1) 1024 % 10 == 4
# 2) 1024 // 10 == 102
# 3) 102 % 10 == 2
#     .
#     .
#     .
# =============================================================================

num = int(input("자연수 입력 : "))
hangle = "공일이삼사오육칠팔구"
result = ""

while num != 0:
    result = hangle[num % 10] + result
    num = num // 10

print(result)


# =============================================================================
# mutable(변할 수 있는) : list
# immutable(변할 수 없는) : tuple
# =============================================================================
#%% mutable

dataList1 = [1,2,3]
dataList2 = dataList1

dataList2.append(4)

print(dataList1)

#%% immutable
#dataTuple1 = (1, 2, 3)
dataTuple1 = 1, 2, 3
# print(type(dataTuple1))
dataTuple2 = dataTuple1

dataTuple2 += 4, 5

print(dataTuple1)
# dataTuple1[0] = 10 : 튜플의 값을 수정할 수 없다.
print(dataTuple1[0])

댓글남기기