본문 바로가기

Python

Python - Comprehension 방식

# comprehension : 패턴이 있는 list, dictionary, set을 간편하게 
# 작성할 수 있는 기능

numbers = []
for n in range(1,101) :
    numbers.append(n)
print(numbers)

# 컴프리헨션 방식
print([x for x in range(1,11)])

clist = [x for x in range(1,11)]
print(clist)

# 1 ~ 10까지의 짝수 리스트 evens를 생성하기 for구문 
# 1 ~ 10까지의 짝수 리스트 evens를 생성하기 comprehension

# (1) for
evens = []
for n in range(2,11,2):
    evens.append(n)
print(evens)

evens = []
for i in range(1,11):
    if i%2 == 0:
        evens.append(i)
print(evens)

# (2) comprehension
print([x for x in range(2,11,2)])
print(evens)

evens=[n for n in range(1,11) if n%2 == 0]
print(evens)

# 1~10까지의 2의 배수와 3의 배수인 데이터만 nums 데이터에 저장
# for
nums=[]
for i in range(1,11):
    if i%2==0 or i%3==0:
        nums.append(i)
print(nums)

# comprehension
nums=[]
print([x for x in range(1,11) if x%2 == 0 or x%3 ==0])


# 1~10까지의 2의 배수이면서 3의배수인 데이터만 nums 데이터에 저장
# for
nums=[]
for i in range(1,11):
    if i%2==0 and i%3==0:
        nums.append(i)
print(nums)

# comprehension
nums=[]
print([x for x in range(1,11) if x%2 == 0 and x%3 ==0])

 

print([x for x in range(1,11) if x%2 == 0 if x%3 ==0])

# 두 개의 리스트의 값을 하나씩 매칭하여 튜플로 생성하기 
colorlist = ['black','white']
sizelist = ["S","M","L"]
dresslist = ((c,s) for c in colorlist for s in sizelist)
print(dresslist)
for d in dresslist:
    print(d)

# set 생성하기
set1 = { x**2 for x in [1,1,2,2,3,3]}
print(set1)

# list 생성하기
list1 = [x**2 for x in [1,1,2,2,3,3]]
print(list1)

# set2 set 객체를 1~10까지 사이의 짝수의 제곱으로 이루어진 데이터를 생성하기
set2 = {x**2 for x in range(2,11,2)}
print(set2)

 

set2 = {x**2 for x in range(1,11) if x % 2 == 0}
print(set2)

 

# set 정렬하기 (정렬하지 않으면 임의로 순서가 지정된다.)

print(sorted(set2))
print(sorted((set2),reverse=True)) #역순

# dictionary 데이터를 컴프리헨션 방식으로 생성하기 
products = {"냉장고":220, "건조기":140,"TV":130,"세탁기":150,
            "오디오":50,"컴퓨터":250}
print(products)

# 200만원 미만의 제품만 products1에 저장하기
product1 = {} #dictionary 객체 
for name in products.keys() :
    if products.get(name) < 200 :
       product1[name] = products.get(name)
print(product1)

 

# 방법 2
product2 = {}
for p,v in products.items() : # (k,v) 쌍인 객체들
    if v < 200 :
        product2.update({p:v}) # 키가 존재하면 수정, 키가 없으면 추가 
print(product2)

# 방법 3 : comprehension
product3 = {p:v for p,v in products.items() if v < 200}
print(product3)

'Python' 카테고리의 다른 글

Python - 반환값 return  (0) 2021.06.14
Python - 함수와 람다  (0) 2021.06.14
Python - 딕셔너리 연습  (0) 2021.06.11
Python - 연습문제 2  (0) 2021.06.11
Python - 문자열 함수  (0) 2021.06.10