一个Python程序,用于向那些有共同好友的人推荐社交网络中的好友

ymdaylpp  于 2023-01-29  发布在  Python
关注(0)|答案(1)|浏览(187)

我正在尝试创建一个python程序来读取一个.txt文件(一个社交网络作为代码的输入),其中第一行是用户数量,下面是用户的名字,旁边是他们的朋友,例如:
7--鲍勃汤姆--马克斯汤姆--汤姆克里斯--克里斯阿尔菲--艾米丽--米莉阿尔菲--
(--表示新行,供参考)
由于我对python还很陌生,我似乎没有做任何事情来使代码读取.txt文件并工作,到目前为止,我只使它稍微工作过一次,但不得不废弃代码,因为它只适用于非常特定的.txt文件,程序必须能够在与上述相同的布局中运行任何.txt文件。
我的目标是让那些不是朋友但有共同朋友的人互相推荐,比如鲍勃和马克斯会互相推荐,因为他们都是汤姆的朋友。
我试图输入.txt文件,这样代码就可以运行,但代码中有错误。从那时起,我尝试了许多行代码,并向许多人寻求帮助,但一直无法让它工作,该代码本质上要求任何.txt文件都是一个社交网络,可以输入到代码中,以便为该社交网络中的人推荐朋友。只要它能工作就无所谓。
任何形式的帮助将不胜感激,我已经挣扎了几天,特别是因为我没有经验的Python

uajslkp6

uajslkp61#

下面是一个Python程序的例子,它从一个.txt文件中读取一个社交网络,并根据共同的好友为用户推荐好友:

def read_file(file_name):
    with open(file_name, "r") as file:
        lines = file.readlines()
        num_of_users = int(lines[0].strip())
        friends = {}
        for i in range(1, num_of_users + 1):
            user_friends = lines[i].strip().split()
            friends[user_friends[0]] = user_friends[1:]
    return friends

def suggest_friends(friends):
    suggested_friends = {}
    for user, friend_list in friends.items():
        suggested_friends[user] = []
        for friend in friend_list:
            suggested_friends[user] += [f for f in friends[friend] if f != user and f not in friend_list and f not in suggested_friends[user]]
    return suggested_friends

def main():
    friends = read_file("network.txt")
    suggested_friends = suggest_friends(friends)
    for user, suggested in suggested_friends.items():
        print(f"{user} should be friends with {', '.join(suggested)}")

if __name__ == "__main__":
    main()

这段代码逐行读取.txt文件,并将用户之间的关系存储在字典中。然后,代码通过检查每个朋友的朋友并添加那些还不是朋友和还没有被建议为朋友的朋友来为每个用户建议朋友。代码为每个用户打印建议的朋友。

相关问题