# -*- coding: utf-8 -*- ####ID 17-friends-of-friends #### Άσκηση: Γράψτε μια συνάρτηση σε python: #### def friendsoffriends(L) #### η οποία παίρνει ως παράμετρο μια λίστα L της μορφής #### #### [ ["Name1", "Name2"], ["Name3", "Name4"], ... ] #### #### Η λίστα L περιέχει άλλες λίστες μήκους ακριβώς δύο (ζέυγη δηλ.), η κάθε μια από τις οποίες περιέχει δύο *διαφορετικά* ονόματα. #### Κάθε τέτοιο ζεύγος δηλώνει ότι τα μέλη του είναι μεταξύ τους φίλοι. #### #### Η συνάρτησή σας θα πρέπει να επιστρέφει ένα λεξικό της μορφής #### #### { "Name": ["FriendofFriend1", "FriendofFriend2", ...], ... } #### #### Στο λεξικό αυτό εμφανίζονται ως κλειδιά (keys) *όλα* τα ονόματα που εμφανίζονται στη λίστα L. Για κάθε ένα από αυτά το #### ονόματα, έστω "Name", στο λεξικό κρατάμε μια λίστα με ονόματα αυτών των στοιχείων της λίστας L που είναι φίλοι φίλων του #### "Name" αλλά όχι οι ίδιοι φίλοι του "Name", ούτε ο ίδιος ο "Name". Δεν έχει σημασία με ποια σειρά έχουν γραφεί τα περιεχόμενα #### της κάθε λίστας φίλων των φίλων ενός ατόμου. #### #### Για παράδειγμα, αν #### #### L = [ ["Mihalis", "Manolis"], ["Manolis", "Yannis"], ["Manolis", "Kostis"], ["Kostis", "Elias"], ["Elias", "Yannis"], #### ["Elias", "Dimitris"], ["Dimitris", "Yannis"] ] #### #### τότε η συνάρτησή σας θα πρέπει να επιστρέφει το λεξικό (κάντε ένα σχήμα με τα άτομα και τις φιλίες τους για να φανεί ξεκάθαρα) #### #### {'Kostis': ['Mihalis', 'Yannis', 'Dimitris'], 'Yannis': ['Mihalis', 'Kostis'], 'Manolis': ['Elias', 'Dimitris'], #### 'Mihalis': ['Yannis', 'Kostis'], 'Elias': ['Manolis'], 'Dimitris': ['Kostis', 'Manolis']} #### #### Γράφετε τον κώδικά σας αποκλειστικά ανάμεσα στις γραμμές START και STOP παρακάτω. #### Δεν πρέπει να πειράξετε καθόλου τις υπόλοιπες γραμμές #### #### Για να τρέξετε το πρόγραμμά σας (αποθηκευμένο στο αρχείο user.py) δίνετε την εντολή #### #### python user.py #### Απαιτήσεις: #### Στο τέλος του προγράμματός σας θα πρέπει να είναι ορισμένη η συνάρτηση και να υπολογίζει αυτό που ζητάει #### η άσκηση. Μη γράψετε εσείς κάποια κλήση στη συνάρτηση αλλά μόνο τον ορισμό της αρχίζοντας από τη γραμμή #### #### def friendsoffriends(L): #### #### Μην αλλάξετε ό,τι είναι από τη γραμμή START και πάνω #### #### ΔΕΝ ΕΠΙΤΡΕΠΟΝΤΑΙ εντολές print ή input στο πρόγραμμά σας #### ####START Από δω και κάτω γράφετε το πρόγραμμά σας.---------------------------------------------------------------- # Για να ελέγξετε το πρόγραμμά σας μπορείτε να τροποποιείτε τη λίστα LL και να ελέγχετε κάθε φορά το τι λεξικό παράγεται LL = [ ["Mihalis", "Manolis"], ["Manolis", "Yannis"], ["Manolis", "Kostis"], ["Kostis", "Elias"], ["Elias", "Yannis"], ["Elias", "Dimitris"], ["Dimitris", "Yannis"] ] def friendsoffriends(L): ####STOP Μην αλλάξετε ό,τι είναι από τη γραμμή αυτή και κάτω-------------------------------------------------------- print "The list of friendships is: ", LL print "The dictionary of persons and their friends of friends is: ", friendsoffriends(LL)