#1. 문제 해결
1) 편리한 코딩을 위해서 fruit class 만들기
2) fruit class 형태의 튜플들을 fruits 리스트에 넣기
3) fruits 리스트를 name 순서대로 정렬하기
4) 중복되는 name의 quantity를 합쳐서 group화 하고 그 결과 값을 groups 리스트에 넣기
#2. 코드 짜기
# class fruit 만들기
class fruit(): #class명은 fruit으로 아래 method(class 내 함수)로 정의
def __init__(self, name, quantity):
self.name=name
self.quantity=quantity
#fruit class를 활용해서 원소들을 만들어서 fruits list에 입력시킴
fruits=[fruit("banana",5), fruit("apple", 3), fruit("orange", 2), fruit("melon", 1), fruit("banana", 3), fruit("melon",5)]
##Group화 하기
#먼저, fruits 리스트를 name 순서대로 정렬하기
N=len(fruits)
for i in range(0,N-1):
for j in range(i+1, N):
if fruits[i].name>fruits[j].name:
temp=fruits[i]; fruits[i]=fruits[j]; fruits[j]=temp #SWAP
for i in fruits:
print(f"{i.name.rjust(10)}는 {i.quantity}개 있어요")
print("---------Group화-----------")
#그 다음, 중복되는 name의 quantity를 합쳐서 Group화 하기, groups 리스트에 새로운 데이터 넣기
groups=[]
subtotal=0
for i in range(N):
subtotal=subtotal+fruits[i].quantity
if i+1==N or fruits[i].name != fruits[i+1].name:
groups.append(fruit(fruits[i].name, subtotal))
subtotal=0
for i in groups:
print(f"{i.name.rjust(10)}는 {i.quantity}개 있어요")
#3. 실행
'Python notes > Others' 카테고리의 다른 글
파이썬) __name__ 변수는 뭐지? (+if __name__=="__main__"의 의미..) (22) | 2021.03.28 |
---|---|
파이썬) try block으로 에러를 처리하기 (+except, else) (0) | 2021.03.28 |
파이썬) rjust 함수 사용법 (오른쪽 정렬해서 출력하기) (0) | 2021.03.26 |
파이썬) class 만들기 (+class? method? object와 instance?) (0) | 2021.03.26 |
파이썬 예제코드) 최빈값 알고리즘 만들기 (+인덱스 값을 사용) (0) | 2021.03.25 |
댓글