# list comprehension
# docs는 list of list of str
# 이를 list of str로 flatten 시킴
docs = [
'이건 테스트 문장입니다'.split(),
'두번째 줄입니다'.split(),
'마지막 줄입니다'.split()
]
print(docs)
[['이건', '테스트', '문장입니다'], ['두번째', '줄입니다'], ['마지막', '줄입니다']]
# flatten 시키기 1
flatten_docs = [word for doc in docs for word in doc]
print(flatten_docs)
['이건', '테스트', '문장입니다', '두번째', '줄입니다', '마지막', '줄입니다']
# for doc in docs 라는 list를 돌면서 그 안의 doc 이라는 list를 가져옴
# 그 다음의 for word in docs는 doc 이라는 list 안의 word 라는 str을 정의
# 이런 word 들을 하나의 list로 묶는다는 의미로 [word for... for...]이 적합
# flatten 시키기 2
flatten_docs_ = []
for doc in docs:
for word in doc:
flatten_docs_.append(word)
print(flatten_docs_)
['이건', '테스트', '문장입니다', '두번째', '줄입니다', '마지막', '줄입니다']
# set에도 적용 됨
flatten_docs_set = {word for doc in docs for word in doc}
print(flatten_docs_set)
term_vectors = {
'doc1' : '이건 테스트 문장입니다'.split(),
'doc2' : '두번째 줄입니다'.split(),
'doc3' : '마지막 줄입니다.'.split()
}
flatten_terms = {term for key, terms in term_vectors.items() for term in terms}
print(flatten_terms)
{'마지막', '줄입니다', '줄입니다.', '테스트', '이건', '두번째', '문장입니다'}
# dict에도 적용 됨
# dict.keys(): dict의 키
# dict.values(): 값
# dict.items(): (key, value) pair
# => iteration 할 수 있는 형태로 제공
d = {
'a':1,
'b':2,
'c':3
}
print('\nitems()')
for key, value in d.items():
print(key, value)
items()
a 1
b 2
c 3
print('\nkeys()')
print([key for key in d.keys()])
keys()
['a', 'b', 'c']
print('\nvalues()')
print([value for value in d.values()])
values()
[1, 2, 3]
sum(d.values())
# enumerate
# 1. JAVA처럼 짠 것
I = ['a', 'b', 'c', 'd', 'e']
for i in range(len(I)):
print('I[{}] = {}'.format(i, I[i]))
I[0] = a
I[1] = b
I[2] = c
I[3] = d
I[4] = e
# 2. enumerate 이용
for i, item in enumerate(I):
print('I[{}] = {}'.format(i, item))
I[0] = a
I[1] = b
I[2] = c
I[3] = d
I[4] = e
# set, dict와 같이 iterable한 모든 경우에 이용 가능
S = ['a', 'b', 'c', 'd', 'e']
for i, item in enumerate(S):
print('{}: {}'.format(i, item))
0: a
1: b
2: c
3: d
4: e
'파이썬' 카테고리의 다른 글
_yield_len_iter (0) | 2017.08.29 |
---|---|
slice and sorting (0) | 2017.08.29 |
Pickle (0) | 2017.08.28 |
Dictionary (0) | 2017.08.28 |
마인크래프트로 배우는 파이썬 프로그래밍 (0) | 2017.08.25 |