printf("ho_tari\n");

파이썬 스타일 코드 I (join, split, list_comprehension, loop, enumerate) 본문

Python

파이썬 스타일 코드 I (join, split, list_comprehension, loop, enumerate)

호타리 2023. 10. 16. 15:48

<join.py>

colors = ['red', 'blue', 'green', 'yellow']
result = ''.join(colors)    # join()을 활용하여 리스트의 각 요소를 빈칸 없이 연결
print(result)

result = ''.join(colors)    # 연결 시, 1칸을 띄고 연결
print(result)

result = ', '.join(colors)  # 연결 시 ","로 연결
print(result)

result = '-'.join(colors)   # 연결 시 "-"로 연결
print(result)

<compile 결과>

 

<split.py>

items = 'zero one two three'.split()    # 빈칸을 기준으로 문자열 분리
print(items)

example = 'python,jquery,javascript'    # ","를 기준으로 문자열 나누기
example.split(",")
print(example)

a, b, c = example.split(",")    # 리스트에 있는 각 값을 a, b, c 변수로 언패킹
print(a, b, c)

example = 'thepython.univ.edu'
subdomain, domain, tld = example.split('.') # "."을 기준으로 문자열 나누기 - 언패킹
print(subdomain, domain, tld)

<compile 결과>

 

<list_comprehension.py>

# 일반적인 반복문 + 리스트
result = []

for i in range(10):
    result.append(i)

print(result)

# 리스트 컴프리헨션
result = [i for i in range(10)]
print(result)

# 일반적인 반복문 + 리스트
result = []

for i in range(10):
    if i % 2 == 0:
        result.append(i)

print(result)

# 리스트 컴프리헨션
result = [i for i in range(10) if i % 2 == 0]
print(result)

<compile 결과>

 

<nested_loop.py>

word_1 = "Hello"
word_2 = "World"
result = [i + j for i in word_1 for j in word_2]    # 중첩 반복문
print(result)

case_1 = ["A", "B", "C"]
case_2 = ["D", "E", "A"]
result = [i + j for i in case_1 for j in case_2 if not(i==j)]
print(result)

<compile 결과>

 

<two_dimensional_list.py>

words = 'The quick brown fox jumps over the lazy dog'.split()
print(words)

stuff = [[w.upper(), w.lower(), len(w)] for w in words] # 리스트의 각 요소를 대문자, 소문자, 길이로 변환하여 이차원 리스트로 변환

for i in stuff:
    print(i)

case_1 = ["A", "B", "C"]
case_2 = ["D", "E", "A"]
result = [i + j for i in case_1 for j in case_2]
print(result)

result = [[i + j for i in case_1] for j in case_2]
print(result)

<compile 결과>

 

<loop.py>

# 일반적인 반복문 + 리스트
def scalar_vector_product(scalar, vector):
    result = []
    for value in vector:
        result.append(scalar * value)
    return result

iteration_max = 10000

vector = list(range(iteration_max))
scalar = 2

for _ in range(iteration_max):
    scalar_vector_product(scalar, vector)

# 리스트 컴프리헨션
iteration_max = 10000

vector = list(range(iteration_max))
scalar = 2

for _ in range(iteration_max):
    [scalar * value for value in range(iteration_max)]

 

<enumerate.py>

for i, v in enumerate(['tic', 'tac', 'toe']):   # 리스트에 있는 인덱스와 값을 언패킹
    print(i, v)

print({i:j for i, j in enumerate('PYTHON is an language of programming.'.split())})

alist = ['a1', 'a2', 'a3']
blist = ['b1', 'b2', 'b3']

for a, b in zip(alist, blist):
    print(a, b) # 병렬로 값을 추출

a, b, c = zip((1, 2, 3), (10, 20, 30), (100, 200, 300))
print(a, b, c)

print([sum(x) for x in zip((1, 2, 3), (10, 20, 30), (100, 200, 300))])

alist = ['a1', 'a2', 'a3']
blist = ['b1', 'b2', 'b3']

for i, (a, b) in enumerate(zip(alist, blist)):
    print(i, a, b)  # (인덱스, alist[인덱스], blist[인덱스]) 표시

<compile 결과>

'Python' 카테고리의 다른 글

객체 지향 프로그래밍  (0) 2023.10.18
파이썬 스타일 코드 II (lambda, map, asterisk, linear_algebra)  (0) 2023.10.16
자료구조  (0) 2023.10.16
문자열  (0) 2023.10.16
함수  (0) 2023.10.16