coding/Project

[Python] 활용편 - 08 - list, filter, sort 활용(리스트 필터 및 정렬)

양한마리 2022. 9. 14. 20:46
728x90


:: 파이썬 과제 - list, filter, sort 활용 ::

2. 리스트 필터 및 정렬

list, filter, sort

 


2. 리스트 필터 및 정렬

요구조건 

  • filter 혹은 리스트 축약식을 사용해 코드를 작성해주세요
  • 제공 된 사용자들 중 나이가 20살 미만인 사람들은 제외해주세요
  • 사용자들을 나이 순으로 정렬해주세요

풀이)

from pprint import pprint

# 예제 
people = [
    ("Blake Howell", "Jamaica", 18, "aw@jul.bw"),
    ("Peter Bowen", "Burundi", 30, "vinaf@rilkov.il"),
    ("Winnie Hall", "Palestinian Territories", 22, "moci@pacivhe.net"),
    ("Alfred Schwartz", "Syria", 29, "ic@tolseuc.pr"),
    ("Carrie Palmer", "Mauritius", 28, "fenlofi@tor.aq"),
    ("Rose Tyler", "Martinique", 17, "as@forebjab.et"),
    ("Katharine Little", "Anguilla", 29, "am@kifez.et"),
    ("Brent Peterson", "Svalbard & Jan Mayen", 22, "le@wekciga.lr"),
    ("Lydia Thornton", "Puerto Rico", 19, "lefvoru@itbewuk.at"),
    ("Richard Newton", "Pitcairn Islands", 17, "da@lasowiwa.su"),
    ("Eric Townsend", "Svalbard & Jan Mayen", 22, "jijer@cipzo.gp"),
    ("Trevor Hines", "Dominican Republic", 15, "ev@hivew.tm"),
    ("Inez Little", "Namibia", 26, "meewi@mirha.ye"),
    ("Lloyd Aguilar", "Swaziland", 16, "oza@emneme.bb"),
    ("Erik Lane", "Turkey", 30, "efumazza@va.hn"),
]

# some code
adult_people = [x for x in people if x[2] >= 20] # 나이가 20살 미만인 사람들 제외 처리
adult_people.sort(key=lambda x: x[2]) # 사용자들 나이 순으로 정렬
pprint(adult_people)

result = [('Winnie Hall', 'Palestinian Territories', 22, 'moci@pacivhe.net'),
          ('Brent Peterson', 'Svalbard & Jan Mayen', 22, 'le@wekciga.lr'),
          ('Eric Townsend', 'Svalbard & Jan Mayen', 22, 'jijer@cipzo.gp'),
          ('Inez Little', 'Namibia', 26, 'meewi@mirha.ye'),
          ('Carrie Palmer', 'Mauritius', 28, 'fenlofi@tor.aq'),
          ('Alfred Schwartz', 'Syria', 29, 'ic@tolseuc.pr'),
          ('Katharine Little', 'Anguilla', 29, 'am@kifez.et'),
          ('Peter Bowen', 'Burundi', 30, 'vinaf@rilkov.il'),
          ('Erik Lane', 'Turkey', 30, 'efumazza@va.hn')]

if result == adult_people :
    print("일치 합니다.")
else :
    print("불일치 합니다.")

실행 예시)

[('Winnie Hall', 'Palestinian Territories', 22, 'moci@pacivhe.net'),
 ('Brent Peterson', 'Svalbard & Jan Mayen', 22, 'le@wekciga.lr'),
 ('Eric Townsend', 'Svalbard & Jan Mayen', 22, 'jijer@cipzo.gp'),
 ('Inez Little', 'Namibia', 26, 'meewi@mirha.ye'),
 ('Carrie Palmer', 'Mauritius', 28, 'fenlofi@tor.aq'),
 ('Alfred Schwartz', 'Syria', 29, 'ic@tolseuc.pr'),
 ('Katharine Little', 'Anguilla', 29, 'am@kifez.et'),
 ('Peter Bowen', 'Burundi', 30, 'vinaf@rilkov.il'),
 ('Erik Lane', 'Turkey', 30, 'efumazza@va.hn')]
일치 합니다.

종료 코드 0(으)로 완료된 프로세스

 

728x90
반응형