카테고리 없음

Day03. for문

파이3.14 2017. 5. 22. 07:32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
nums = [132546798]
 
for val in nums:
    print val,
    
print
for i in nums:
    print i,
    
print
for num in nums:
    print num,
 
print
students_names = ['Tracy''Michael''Byun']
for name in students_names:
    print name,
 
 
<<<<<실행결과>>>>>
1 3 2 5 4 6 7 9 8
1 3 2 5 4 6 7 9 8
1 3 2 5 4 6 7 9 8
Tracy Michael Byun
cs


### 띄어쓰기도 출력된다

1
2
3
4
5
6
7
8
9
str = 'hello word'
for char in str:
    print char,
 
 
<<<<<실행결과>>>>>
h e l l o   w o r d
In [ ]:
 
cs


### dict순회

- dictionary의 경우 기본적으로 순회하게 되면 key값을 참조

- keys() 함수를 이용하여 key값만 순회 가능

- values()함수를 이용하여 value 값만 순회 가능

- items()함수를 이용하여 tuple형태로 key, value 순회 가능


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
capitals = {'korea' : 'seoul''japan' : 'tokyo''usa' : 'Washington D.C'}
 
for country in capitals:
    print country, capitals[country]
print
 
for key in capitals.keys():
    print key,
print
 
for value in capitals.values():
    print value,
print
print
 
for key, value in capitals.items():
    print key, value
print
 
<<<<<실행결과>>>>>
japan tokyo
korea seoul
usa Washington D.C
 
japan korea usa
tokyo seoul Washington D.C
 
japan tokyo
korea seoul
usa Washington D.C
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
capitals = {'korea' : 'seoul''japan' : 'tokyo''usa' : 'Washington D.C'}
 
for k, v in capitals.items():
    print k, ',', v
print
 
 
for item in capitals.items():
    print item
 
 
<<<<<실행결과>>>>>
japan , tokyo
korea , seoul
usa , Washington D.C
 
('japan''tokyo')
('korea''seoul')
('usa''Washington D.C')
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
capitals = {'korea' : 'seoul''japan' : 'tokyo''usa' : 'Washington D.C'}
 
for key in capitals.keys():
    print key
print 
 
my_keys = capitals.keys()
 
for key in my_keys:
    print key
 
 
<<<<<실행결과>>>>>
japan
korea
usa
 
japan
korea
usa
cs



### for에서 index 사용하기

- 기본적으로 for에 리스트를 순회하는 경우, 값만 추출함

- 아래와 같은 코드로 인덱스와 값 모두 사용 가능

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
nums = [132546798]
 
for val in nums:
    print val,
    
print '\n'
 
for i, val in enumerate(nums):
    print 'index', i, 'val', val
 
 
<<<<<실행결과>>>>>
1 3 2 5 4 6 7 9 8 
 
index 0 val 1
index 1 val 3
index 2 val 2
index 3 val 5
index 4 val 4
index 5 val 6
index 6 val 7
index 7 val 9
index 8 val 8
cs


### for break

- break를 수행하지 않았다면 else 블록이 수행된다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
nums = [132456100101]
evens = []
odds = []
 
for i in nums:
    if i == 1:
        odds.append(i)
    elif i % 2 == 0:
        evens.append(i)
    else:
        odds.append(i)
 
print evens
print odds
 
 
<<<<<실행결과>>>>>
[246100]
[135101]
cs



<<<<< 연습문제 >>>>>

아래 각 코드의 Big O notation을 계산하시오 단, 출력에 드는 비용은 1이라고 합니다. (a의 길이는 n이라고 가정)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
= [1245]
for i in a:
    print i
    print i + 2, i ** 3
 
<<<<<실행결과>>>>>
1
3 1
2
4 8
4
6 64
5
7 125

### O(3n) = O(n)
cs


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
= [1245]
for i in a:
    print i
 
for j in a:
    print i + 2
    
for k in a:
    print i ** 3
 
<<<<<실행결과>>>>>
1
2
4
5
7
7
7
7
125
125
125
125
 
# O(3n) = O(n)
cs


1
2
3
4
5
6
7
8
9
= [1245]
for i in a:
    for j in a:
        print i * j,
 
<<<<<실행결과>>>>>
1 2 4 5 2 4 8 10 4 8 16 20 5 10 20 25
# O(n^2) ; n번씩 두번돈다
 
cs


1
2
3
4
5
6
7
8
9
10
= [1245]
for i in a:
    for j in a:
        for k in a:
            print i * j + k,
 
<<<<<실행결과>>>>>
2 3 5 6 3 4 6 7 5 6 8 9 6 7 9 10 3 4 6 7 5 6 8 9 9 10 12 13 11 12 14 15 5 6 8 9 9 10 12 13 17 18 20 21 21 22 24 25 6 7 9 10 11 12 14 15 21 22 24 25 26 27 29 30
### O(n^3)
 
cs


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
= [1234]
= [2345
 
for i in a:
    for j in b:
        print i, j
 
<<<<<실행결과>>>>>
1 2
1 3
1 4
1 5
2 2
2 3
2 4
2 5
3 2
3 3
3 4
3 5
4 2
4 3
4 4
4 5
 
### O(n^2)
cs














반응형