«   2024/07   »
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
Recent Posts
Today
Total
관리 메뉴

짜리몽땅 매거진

[Python] 중첩반복문, 리스트 응용 본문

Data/Python

[Python] 중첩반복문, 리스트 응용

쿡국 2023. 7. 19. 17:40

중첩반복문, 리스트 응용

중첩반복문
for i in range(5):
    for j in range(5):
        if j==i:
            print('*', end='')
        else:
            print(' ', end='')
    print()
*    
 *   
  *  
   * 
    *
print()

공배수 문제 풀기
for i in range(1,51):
    print(i)
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
for i in range(1,51):
    if i%2==0:
        print('국준호')
    elif i%5==0:
        print('쿡쭈노')
    elif i%2==0 and i%5==0:
        print('국쿡준쭈호노')
    else :
        print(i)
1
국준호
3
국준호
쿡쭈노
국준호
7
국준호
9
국준호
11
국준호
13
국준호
쿡쭈노
국준호
17
국준호
19
국준호
21
국준호
23
국준호
쿡쭈노
국준호
27
국준호
29
국준호
31
국준호
33
국준호
쿡쭈노
국준호
37
국준호
39
국준호
41
국준호
43
국준호
쿡쭈노
국준호
47
국준호
49
국준호
for i in range(1,51):
    if i%2==0 and i%5==0:
        print('국쿡준쭈호노')
    elif i%2==0:
        print('국준호')
    elif i%5==0:
        print('쿡쭈노')
    else :
        print(i)
1
국준호
3
국준호
쿡쭈노
국준호
7
국준호
9
국쿡준쭈호노
11
국준호
13
국준호
쿡쭈노
국준호
17
국준호
19
국쿡준쭈호노
21
국준호
23
국준호
쿡쭈노
국준호
27
국준호
29
국쿡준쭈호노
31
국준호
33
국준호
쿡쭈노
국준호
37
국준호
39
국쿡준쭈호노
41
국준호
43
국준호
쿡쭈노
국준호
47
국준호
49
국쿡준쭈호노
리스트 응용
append : 요소를 하나씩 추가
extend : 리스트 연결 확장
insert : 특정 인덱스 요소 추가
append
a=[1,2,3,4,5]
a
[1, 2, 3, 4, 5]
a.append(50) #append 함수를 통해 리스트에 요소를 추가할 수 있다.
a
[1, 2, 3, 4, 5, 50]
a=1,2,3,4,5
a
(1, 2, 3, 4, 5)
a.append(10) #리스트, 즉 대괄호가 아닐 경우 에러
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_27500\4084017922.py in <module>
----> 1 a.append(10)

AttributeError: 'tuple' object has no attribute 'append'

extend
b=[1,2,3]
b
[1, 2, 3]
b.append(100,200) #append는 여러 요소를 추가하고 싶으면 []를 표시해야함.
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_27500\2026919013.py in <module>
----> 1 b.append(100,200)

TypeError: list.append() takes exactly one argument (2 given)

b.append([100,200])
b #하지만 대괄호를 표시한게 그대로 출력됨. 
[1, 2, 3, [100, 200]]
b=[1,2,3]
b
[1, 2, 3]
b.extend([100,200])#extend 또한 대괄호를 표시
b #하지만 append와는 다르게 출력될때 대괄호가 표시되지 않음.
[1, 2, 3, 100, 200]
insert
a=[1,2,3]
a.insert(1,500) #insert(인덱스, 값) 을 입력해 원하는 순서(위치)에 요소 추가 가능
a
[1, 500, 2, 3]
a.insert(0,300) #주의할 점: 해당 인덱스의 값이 새로 입력한 값으로 바뀌는 것이 아니라 추가되고 기존 값은 뒤로 밀려나는 것임.
a
[300, 1, 500, 2, 3]
리스트에서 요소 삭제하는 법
pop : 마지막 요소 또는 특정 인덱스 요소 삭제
remove : 특정 값 찾아서 삭제
del : 전체 삭제
a=[1,2,3]
a
[1, 2, 3]
a.pop(2)
3
a
[1, 2]
​
remove
a=[1,2,3]
del a
a
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_27500\2167009006.py in <module>
----> 1 a

NameError: name 'a' is not defined

a=[1,2,3,4,5]
a.remove(3)
a
[1, 2, 4, 5]
리스트에서 특정 값의 인덱스 구하기
a=[1,2,3,4,5]
a.index(4) #a[인덱스] 와 반대되는 느낌
3
a[3]
4
특정 값의 개수를 셀 수 있다
a.count(1)
1
a=[1,1,1,1,1,2,2]
a.count(1)
5
리스트의 순서를 뒤집을 수 있다
a.reverse()
a
[2, 2, 1, 1, 1, 1, 1]
정렬
sort()
오름차순 sort(reverse=False)
내림차순 sort(reverse=True)
a=[11,56,23,48,29,74]
a.sort(reverse=False)
a
[11, 23, 29, 48, 56, 74]
a.sort() #오름차순 디폴트
a
[11, 23, 29, 48, 56, 74]
a.sort(reverse=True)
a
[74, 56, 48, 29, 23, 11]
-리스트의 모든 요소 삭제하기

-- 전체를 삭제하는 del과 달리 요소만 삭제한다

a.clear()
a
[]
del a
a
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_27500\2167009006.py in <module>
----> 1 a

NameError: name 'a' is not defined

a=[1,5,52,56,58]
a
[1, 5, 52, 56, 58]
del a[0:3] #인덱스 설정을 통해 원하는 범위만 삭제도 가능
a
[56, 58]
del a[:] #그냥 del a와 달리 이렇게 입력하면 clear와 같은 개념으로 사용 가능
a
[]
다른 메모리를 사용하는 copy 개념
a=[1,2,3,4]
d=a.copy() #copy하려는변수.copy() 를 통해 다른 메모리 사용 가능
d
[1, 2, 3, 4]
반복문과 리스트를 합쳐보자
반복문을 출력할 때 시퀀스객체인 경우 인덱스 번호를 알 수 없다.
인덱스와 값을 같이 출력하고 싶은 경우
for 인덱스, 값 in enumerate(리스트) :
a=[50,60,70,80,90]
for index, value in enumerate(a):
    print(index, value)
0 50
1 60
2 70
3 80
4 90
for index, value in enumerate(a):
    print(value, index)
50 0
60 1
70 2
80 3
90 4
​