my_list = ['a','b','c','d']
result_list = [(i, j) for i in range(2) for j in my_list]
print(result_list)
my_list = ['a','b','c','d']
# 인자로 받은 리스트로부터 데이터를 하나씩 가져오는 제너레이터를 리턴하는 함수
def get_dataset_generator(my_list):
result_list = []
for i in range(2):
for j in my_list:
yield (i, j) # 이 줄이 이전의 append 코드를 대체했습니다
print('>> 1 data loaded..')
dataset_generator = get_dataset_generator(my_list)
for X, y in dataset_generator:
print(X, y)
import time
num_list = ['p1','p2', 'p3', 'p4']
start = time.time()
def count(name):
for i in range(0, 100000000):
a = 1 + 2
print("finish:"+name+"\n")
for num in num_list:
count(num)
print("time :", time.time() - start)
import multiprocessing
import time
num_list = ['p1','p2', 'p3', 'p4']
start = time.time()
def count(name):
for i in range(0, 100000000):
a = 1+2
print("finish:"+name+"\n")
if __name__ == '__main__':
pool = multiprocessing.Pool(processes = 4) #4개의 process
#count('p1'), count('p2'), count('p3'), count('p4')
pool.map(count, num_list)
pool.close() #더 이상 pool을 통해서 새로운 작업을 추가하지 않을 때 사용
pool.join() #프로세스가 종료될 때까지 대기하도록 지시하는 구문
print("time :", time.time() - start)
list(map(lambda x: str(x) if x % 3 == 0 else x, data))
list(map(lambda x, y: x * y, data1, data2))
list(filter(lambda x: x > 5 and x < 10, data))
reduce(lambda x, y: x + y, data)
print( (lambda x,y: x + y)(10, 20) ) #30
#map(변환 함수, 시퀀셜 데이터) : 두번째 인자로 넘어온 데이터가 담고 있는 모든 데이터에 변환 함수를 적용
result = list(map(lambda i: i * 2 , [1, 2, 3])) #[2, 4, 6]
#reduce(집계 함수, 시퀀셜 데이터) : 집계 함수는 두개의 인자를 받아야 하는데요. 첫번째 인자는 누적자(accumulator), 두번째 인자는 현재값(current value)가 넘어온다.
from functools import reduce
reduce(lamda x, y: x + y, [0, 1, 2, 3, 4]) # 0과 1더해서 [1, 2, 3, 4] 만들고 다시 1, 2를 더해서 [3, 3, 4]를 만들고 3과 3을 더해서 [6, 4]만들고 6과 4를 더하고 종료
#filter(조건 함수, 시퀀셜 데이터) : 두번째 인자로 넘어온 데이터 중에서 첫번째 인자로 넘어온 조건 함수를 만족하는 데이터만을 반환
list(filter(lambda x: x < 5, range(10))) #[1, 2, 3, 4, 5]
append(값) : 리스트 끝에 값을 추가, 리스트[len(리스트):] = [값] 과 같음
append(리스트) : 리스트 안에 리스트 추가
extend(리스트) : 리스트 끝에 다른 리스트 연결, 리스트[len(리스트):] = [값, 값] 과 같음
insert(인덱스, 값) : 리스트의 특정 인텍스에 값을 추가
pop() : 리스트 마지막 값을 삭제한 뒤 삭제한 값을 반환
pop(인텍스) : 해당 인덱스의 값을 삭제한 뒤 삭제한 값을 반환, del 리스트[인텍스] 와 같음
remove(값) : 리스트에서 특정 값을 삭제
index(값) : 리스트에서 특정 값의 인덱스를 구함
count(값) : 리스트에서 특정 값의 갯수를 구함
reverse() : 리스트에서 값의 순서를 반대로 함
sort() : 리스트의 값을 작은 순서대로 정렬(오름차순)
sort(reverse=True) : 내림차순으로 정렬
clear() : 리스트의 모든 값을 삭제, del 리스트[:] 와 같음
copy() : 리스트를 복사해서 새 리스트 생성
index, count 만 사용가능
for i in 리스트:
for index, value in enumerate(리스트):
for index in range(len(리스트)):
while index < len(리스트):
[식 for 변수 in 리스트] -> [i+2 for i in range(10)]
[식 for 변수 in 리스트 if 조건식] -> [i+2 for i in range(10) if i % 2 == 0]
[식 for 변수 in 리스트 for 변수 in 리스트] -> [i * j for j in range(2, 10) for i in range(1, 10)]
[식 for 변수 in 리스트 if 조건식 for 변수 in 리스트 if 조건식] -> [i * j for j in range(2, 10) if j is not 0 for i in range(1, 10) if i % 3 == 0]
list(식 for 변수 in 리스트 if 조건식) -> list(i+2 for i in range(10) if i % 3 == 0)
tuple(식 for 변수 in 리스트 if 조건식)
replace
translate
split
join
upper
lower
lstrip, rstrip, strip
ljust, rjust, center
zfill
find, rfind
index, rindex
count