python 实现QQ可能想认识的人
python 实现 可能想认识的人
-
需求
-
好友列表分布
data = { "A": ["B", "C", "D", "E", "F"], "B": ["A", "E", "D", "S"], "C": ["E", "R", "F", "G"], "D": ["T", "Y", "D", "B", "C", "F"] }
-
代码示例
# 你想认识的人 def you_want_to_know(user): # 获取共同好友 friends_dict = {} # 获取除A以外的其他数据 for k, v in data.items(): if k != user: # 判断A 和 k 是否是好友关系 if user not in data.get(k): # 如果不是好友,判断共同好友都有谁?如果共同好友为0,则不添加 friend_list = list(set(data.get(user)).intersection(set(data.get(k)))) if friend_list: friends_dict[k] = friend_list if not friends_dict: return {} # 对共同好友个数按降序排序 friends_dict = sorted(friends_dict.items(), key=lambda item: len(item[1]), reverse=True) return dict(friends_dict) if __name__ == '__main__': friends = you_want_to_know("A") print(friends)
-
实现结果
{'D': ['F', 'D', 'B', 'C'], 'C': ['E', 'F']}