<머신러닝을 위한 파이썬> Pythonic Code #3

jinseon·2022년 11월 3일
0

List Comprehension

  • 기존 List를 사용하여 간단히 다른 List를 만드는 기법
  • 포괄적인 List, 포함되는 List라는 의미로 사용됨
  • 파이썬에서 가장 많이 사용되는 기법 중 하나
  • 일반적으로 for + append 보다 속도가 빠름

One dimensional List

### 1

# for + append 사용
result = []
for i in range(10):
	result.append(i)
    
print(result)
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


# List Comprehension 사용
result = [i for i in range(10)]
print(result)
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 필터
result = [i for i in range(10) if i % 2 == 0]
print(result)
=> [0, 2, 4, 6, 8]

### 2

Nested For loop

word_1 = "Hello"
word_2 = "World"
result = [i+j for i in word_1 for j in word_2]

print(result)
=> ['HW', 'Ho', 'Hr', 'Hl', 'Hd',
'eW', 'eo', 'er', 'el', 'ed',
'lW', 'lo', 'lr', 'll', 'ld',
'lW', 'lo', 'lr', 'll', 'ld',
'oW', 'oo', 'or', 'ol', 'od']

### 3

Nested For loop + filter

# Nested For loop
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)
=> ['AD', 'AE', 'AA', 'BD', 'BE', 'BA', 'CD', 'CE', 'CA']

# Nested For loop + filter
# Filter: i랑 j과 같다면 List에 추가하지 않음
result = [i+j for i in case_1 for j in case_2 if not(i==j)]

print(result)
=> ['AD', 'AE', 'BD', 'BE', 'BA', 'CD', 'CE', 'CA']

result.sort()
print(result)
=> ['AD', 'AE', 'BA', 'BD', 'BE', 'CA', 'CD', 'CE']

Two dimensional List

### 4

# 문장을 빈칸 기준으로 나눠 list로 변환
words = 'The quick brown fox jumps over the lazy dog'.split()

print (words)
=> ['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']


# list의 각 elemente들을 대문자, 소문자, 길이로 변환하여 two dimensional list로 변환
stuff = [[w.upper(), w.lower(), len(w)] for w in words]

for i in stuff:
	print (i)

['THE', 'the', 3]
['QUICK', 'quick', 5]
['BROWN', 'brown', 5]
['FOX', 'fox', 3]
['JUMPS', 'jumps', 5]
['OVER', 'over', 4]
['THE', 'the', 3]
['LAZY', 'lazy', 4]
['DOG', 'dog', 3]
profile
python

0개의 댓글