runtime
116 / 500
question 116 Collection Algorithms · medium

Every order paid every way

methods_by_order should list the distinct payment methods used for each order. Instead, every order in the report shows every method anyone used. Find the bug and fix it so each order has its own list.

Functionmethods_by_order(payments)
paymentsa list of payment attempts: dictionaries with payment_id, order_id and method
Returns{order_id: [methods]}, each method listed once per order, in the order it was first used for that order
Keepthe function name and what it returns; only the bug should change
Examples
callmethods_by_order([{'payment_id': 'PAY0000416', 'order_id': 'O100376', 'method': 'gift_card'}, {'payment_id': 'PAY0000417', 'order_id': 'O100376', 'method': 'gift_card'}, {'payment_id': 'PAY0001503', 'order_id': 'O101341', 'method': 'card'}, {'payment_id': 'PAY0001504', 'order_id': 'O101341', 'method': 'paypal'}])returns{'O100376': ['gift_card'], 'O101341': ['card', 'paypal']}
callmethods_by_order([{'payment_id': 'P1', 'order_id': 'O103199', 'method': 'paypal'}, {'payment_id': 'P2', 'order_id': 'O103302', 'method': 'apple_pay'}])returns{'O103199': ['paypal'], 'O103302': ['apple_pay']}
callmethods_by_order([{'payment_id': 'P1', 'order_id': 'O1', 'method': 'card'}, {'payment_id': 'P2', 'order_id': 'O1', 'method': 'paypal'}, {'payment_id': 'P3', 'order_id': 'O1', 'method': 'card'}])returns{'O1': ['card', 'paypal']}

Loading your progress…

Every order paid every way — Python practice · Runtime