본문 바로가기
language/python

list

by abstract.jiin 2022. 5. 8.

컬렉션

        데이터를 수집 

알고리즘

        문제를 해결하기 위한 순서 또는 절차

예시 : 빵집에서 ~

문제 : 빵을 팔아야함 
알고리즘 : 반죽 > 발효 > 굽기 > 데코 > 포장 > 판매 

알고리즘은 이런 알고리즘도 있지만, 
다른 알고리즘도 있다. 
발효를 안하거나, 데코를 안하거나 

하나의 문제를 해결하기 위한 여러가지 알고리즘을 모아서 
빵 만들기 라는 이름을 붙이는 순간. > 자료구조


자료구조 
의미 없는 데이터가 자료구조를 통과하는 순간 
하나의 정보가 된다.

age = 10

10이라는 의미없는 데이터가, 나이라는 정보로 바뀜
데이터를 저장공간에 담는 순간 하나의 정보가 된다.

 


list

num1 = 1066
num2 = 240
num3 = 30
num4 = 30
...
num100 = 12330

변수를 100번 선언하지 말자, 
100칸짜리 list를 한 번 선언한다. 


1. 변수를 여러번 선언하지 않고 여러 칸 list를 한 번만 선언하기 위해서 사용.

변수를 선언하면, 값이 한 개만 담기고, 이름도 반드시 붙여야 한다. 
여러 변수를 선언하면 이름도 많아져서 관리하기 불편하다. 

따라서 list는 이름 하나고 각 값을 방 번호(인덱스)로 접근하기 때문에 
값을 관리하기 훨씬 편하고 쉽다. 

2. 규칙성이 없는 값에 규칙성을 부여하기 위해서 


list 선언
대괄호 보면 list다 
list명 = [값, 값2,...]
list명 = [값] * 칸수
list명 = []

list 길이 
len(list명)

list 사용 
data.List = [1, 2, 3]

 

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

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

2) 값 삭제
dataList.remove(값)
[1, 2, 3, 1].remove(1)
결과 : [2, 3, 1]
중복시 좌에서 우 방향으로 가장 먼저 만난 값을 삭제한다.  

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

dataList.clear()
모든 값 삭제

3) 값 검색
dataList.index(값)
dataList.index(3)
결과 : 2
중복시 좌에서 우 방향으로 가장 먼저 만난 인덱스 번호를 가져온다. 

4) 값 수정
dataList[인덱스번호] = 새로운 값
dataList[0] = 10
결과 : [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!


(1) 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, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]


(2) 1~100까지 중 짝수만 넣고 출력

dataList = [0] * 50

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

print(dataList)

실행 결과 : 

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]


(3) A~F까지 넣고 출력 

dataList = []
for i in range(6) : 
        dataList.append(chr(65 + i))
        
print(dataList)

실행 결과 :

['A', 'B', 'C', 'D', 'E', 'F']


(4) A~F까지 중 C 제외하고 출력 **** // 복습이 필요합니다.  

 

dataList = [""] * 5
for i in range(5) : 
        dataList.append(chr(65 + i) 
        if i == 2:   
            continue     
        print(i)
        
print(dataList)

>> 이 코드가 실행이 안되는 이유는 : 

 

정답 코드는 : 


    


(5) 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= "")

실행 결과 : 

['a', 'B', 'c', 'D', 'e', 'F', 'g', 'H', 'i', 'J', 'k', 'L', 'm', 'N', 'o', 'P', 'q', 'R', 's', 'T', 'u', 'V', 'w', 'X', 'y', 'Z']
aBcDeFgHiJkLmNoPqRsTuVwXyZ

 


(6) "ABC"에서 B를 Z로 변경하기

strList = "ABC"
#strList[1] = "z" 
#print(strList)
print(strList.replace("B", "Z"))
strList = strList.replace("B", "Z")
print(strList)

실행 결과 : 

AZC
AZC


(7) 자연수를 한글로 변경하기 // 복습이 필요합니다. 내가 하면 오류가 남.

# 입력 예) 1024
# 출력 예) 일공이사
# 1) 1024 % 10 ==4 
# 2) 1024 // 100 == 102   
# 3) 102 % 10  == 2 

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

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

 

'language > python' 카테고리의 다른 글

dict (2)  (0) 2022.05.10
튜플(Tuple) / 딕셔너리(dict)  (0) 2022.05.09
while  (0) 2022.05.07
for문 (2)  (0) 2022.05.07
for문  (0) 2022.05.07