Your question is Walk Through Code Logic. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
Spokeo aggregates the same person's record from multiple data brokers before showing a profile, so QA regularly reviews the merge logic for edge cases. Here's the function under test.
def merge_person_records(records):
merged = records[0]
for r in records[1:]:
for key in r:
if merged[key] == "" or merged[key] is None:
merged[key] = r[key]
if "phones" in merged and "phones" in r:
merged["phones"] = merged["phones"] + r["phones"]
if r["confidence"] > merged["confidence"]:
merged["name"] = r["name"]
merged["phones"] = list(set(merged["phones"]))
return merged
Look at this code snippet: can you walk me through its logic and explain what it is trying to achieve, and what test cases would expose a problem with it?