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']}
    
posted @ 2021-06-11 11:38  巫小诗  阅读(176)  评论(0编辑  收藏  举报