카테고리 없음
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 = [1, 3, 2, 5, 4, 6, 7, 9, 8] 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 = [1, 3, 2, 5, 4, 6, 7, 9, 8] 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 = [1, 3, 2, 4, 5, 6, 100, 101] 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 <<<<<실행결과>>>>> [2, 4, 6, 100] [1, 3, 5, 101] | cs |
<<<<< 연습문제 >>>>>
아래 각 코드의 Big O notation을 계산하시오 단, 출력에 드는 비용은 1이라고 합니다. (a의 길이는 n이라고 가정)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | a = [1, 2, 4, 5] 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 | a = [1, 2, 4, 5] 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 | a = [1, 2, 4, 5] 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 | a = [1, 2, 4, 5] 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 | a = [1, 2, 3, 4] b = [2, 3, 4, 5] 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 |
반응형