반응형
List Comprehension
- 리스트 컴프리헨션은 간단하게 새로운 리스트를 만드는 방법이다.
- 리스트와 for문을 한 줄에 사용할 수 잇는 장점이 있다.
List Compregension의 장점
- 1) 문법적 간단함
- 2) 런타임 시간이 더 짧다. -> 효율적인 연산을 사용한다.
append를 사용하지 않고 훨씬 더 간결하게 표현이 가능하다!
result = []
for i in range(10):
result.append(i)
print(result)
[out]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
result = [i for i in range(10)]
print(result)
[out]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
이처럼 3줄의 코드를 1줄로 함축하여 포괄할 수 있다.
리스트 컴프리헨션문 끝에 조건문을 삽입하는 것도 가능하다!
result = []
for i in range(10):
if i%2 == 1:
result.append(i)
result
[out]
[1, 3, 5, 7, 9]
result = [i for i in range(10) if i%2 ==1]
result
[out]
[1, 3, 5, 7, 9]
result = []
for i in range(10):
if i%3 == 1:
result.append(i)
elif i%3 == 2:
result.append(i*10)
else:
result.append(i*100)
result
[out]
[0, 1, 20, 300, 4, 50, 600, 7, 80, 900]
result = [i if i%3 == 1 else i*10 if i%3 == 2 else i*100 for i in range(10)]
result
[out]
[0, 1, 20, 300, 4, 50, 600, 7, 80, 900]
if - elif- else 구문 + for문도 가능하다
alp_num1 : zip을 통한 for문
alp_num2 : 중첩 for문의 리스트 컴프리헨션
alp_num3 : 이차원 리스트 코드의 리스트 컴프리헨션이다.
alp = ['x', 'y', 'z']
num = ['1','2','3']
alp_num1 = [ a+n for a,n in zip(alp,num)]
alp_num2 = [a+n for a in alp for n in num]
alp_num3 = [[a+n for a in alp] for n in num]
print(alp_num1)
print(alp_num2)
print(alp_num3)
[out]
['x1', 'y2', 'z3']
['x1', 'x2', 'x3', 'y1', 'y2', 'y3', 'z1', 'z2', 'z3']
[['x1', 'y1', 'z1'], ['x2', 'y2', 'z2'], ['x3', 'y3', 'z3']]
split() : 문자열을 리스트형으로!
split('o') : 문자 'o'를 기준으로 나누어서 list (이때 해당 문자는 포함되지 않음)
' '.join() : 리스트를 문자열로!
- join 앞에 문자열을 입력하면,
- 리스트 요소 사이에 특정 문자열을 붙여 연결한다
word1 = 'Good Morning World!'
print(word1)
split_by_null = word1.split()
split_by_o = word1.split('o')
print(split_by_null)
print(split_by_o)
[out]
Good Morning World!
['Good', 'Morning', 'World!']
['G', '', 'd M', 'rning W', 'rld!']
word2 = 'hello'
join_null = ''.join(split_by_null)
join_space = ' '.join(split_by_null)
print(join_null)
print(join_space)
[out]
GoodMorningWorld!
Good Morning World!
반응형
'Dev > 🐍 Python' 카테고리의 다른 글
[Python] 아스키코드, 문자열 / 이진법, 정수 변환 (0) | 2022.07.31 |
---|---|
[Python] 파이썬 dictionary을 이용한 json 파일 다루기 (0) | 2022.05.06 |
[if절 / if - else / if- elif - else ] 파이썬 if문 한줄 쓰기 (one -line) (0) | 2022.05.01 |
댓글