Python how do i find second connections?












-2















removed I should not ask this question










share|improve this question

























  • To get an answer for your question, you need to give a lot more background. What do A-H mean? I'm assuming they're objects of some class, but you've not named the class or described what its purpose is. Where exactly are you creating your connections variable? If it's at the top level of the class, then all your instances are sharing the same set instance, which may be problematic. But we can't know for sure, since you've shown us so little of your code, and explained almost nothing.

    – Blckknght
    Nov 17 '18 at 0:01
















-2















removed I should not ask this question










share|improve this question

























  • To get an answer for your question, you need to give a lot more background. What do A-H mean? I'm assuming they're objects of some class, but you've not named the class or described what its purpose is. Where exactly are you creating your connections variable? If it's at the top level of the class, then all your instances are sharing the same set instance, which may be problematic. But we can't know for sure, since you've shown us so little of your code, and explained almost nothing.

    – Blckknght
    Nov 17 '18 at 0:01














-2












-2








-2








removed I should not ask this question










share|improve this question
















removed I should not ask this question







python class methods






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 17 '18 at 8:30







BeginCs123

















asked Nov 16 '18 at 23:56









BeginCs123BeginCs123

133




133













  • To get an answer for your question, you need to give a lot more background. What do A-H mean? I'm assuming they're objects of some class, but you've not named the class or described what its purpose is. Where exactly are you creating your connections variable? If it's at the top level of the class, then all your instances are sharing the same set instance, which may be problematic. But we can't know for sure, since you've shown us so little of your code, and explained almost nothing.

    – Blckknght
    Nov 17 '18 at 0:01



















  • To get an answer for your question, you need to give a lot more background. What do A-H mean? I'm assuming they're objects of some class, but you've not named the class or described what its purpose is. Where exactly are you creating your connections variable? If it's at the top level of the class, then all your instances are sharing the same set instance, which may be problematic. But we can't know for sure, since you've shown us so little of your code, and explained almost nothing.

    – Blckknght
    Nov 17 '18 at 0:01

















To get an answer for your question, you need to give a lot more background. What do A-H mean? I'm assuming they're objects of some class, but you've not named the class or described what its purpose is. Where exactly are you creating your connections variable? If it's at the top level of the class, then all your instances are sharing the same set instance, which may be problematic. But we can't know for sure, since you've shown us so little of your code, and explained almost nothing.

– Blckknght
Nov 17 '18 at 0:01





To get an answer for your question, you need to give a lot more background. What do A-H mean? I'm assuming they're objects of some class, but you've not named the class or described what its purpose is. Where exactly are you creating your connections variable? If it's at the top level of the class, then all your instances are sharing the same set instance, which may be problematic. But we can't know for sure, since you've shown us so little of your code, and explained almost nothing.

– Blckknght
Nov 17 '18 at 0:01












2 Answers
2






active

oldest

votes


















0














I'll keep this at a low level of technology; you can stuff this into a comprehension if you like.



Iterate over the list of first-order connections. For each connection, get their first-order connections and add them to the current second-order set -- which I've called friend_of_friend.



def second_connections(self):
for other in self.connections:
self.friend_of_friend.union(other.connections)





share|improve this answer































    0














    Since I can't see your class I'm just going to implement the solution without integrating it into a class. I'm also only going to describe the connections as below, since you didn't share your data structure.



    sets = set([("A", "B"),("A", "D"),("A", "C"),("A", "E"),("B", "F"),("D", "G"), ("F","H")])

    def up_to_second(name, sets):
    connectables = [name] + [x[1] for x in sets if x[0] == name]
    return [x for x in sets if x[0] in connectables]

    up_to_second("A", sets)


    This gives your expected outcome:



    [('A', 'B'), ('A', 'D'), ('A', 'C'), ('A', 'E'), ('D', 'G'), ('B', 'F')]


    Assuming your data structure is at least a bit different from this, you'll need to tweak this solution to conform to your patterns. But as best I can tell this is a solution.






    share|improve this answer























      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53346878%2fpython-how-do-i-find-second-connections%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      0














      I'll keep this at a low level of technology; you can stuff this into a comprehension if you like.



      Iterate over the list of first-order connections. For each connection, get their first-order connections and add them to the current second-order set -- which I've called friend_of_friend.



      def second_connections(self):
      for other in self.connections:
      self.friend_of_friend.union(other.connections)





      share|improve this answer




























        0














        I'll keep this at a low level of technology; you can stuff this into a comprehension if you like.



        Iterate over the list of first-order connections. For each connection, get their first-order connections and add them to the current second-order set -- which I've called friend_of_friend.



        def second_connections(self):
        for other in self.connections:
        self.friend_of_friend.union(other.connections)





        share|improve this answer


























          0












          0








          0







          I'll keep this at a low level of technology; you can stuff this into a comprehension if you like.



          Iterate over the list of first-order connections. For each connection, get their first-order connections and add them to the current second-order set -- which I've called friend_of_friend.



          def second_connections(self):
          for other in self.connections:
          self.friend_of_friend.union(other.connections)





          share|improve this answer













          I'll keep this at a low level of technology; you can stuff this into a comprehension if you like.



          Iterate over the list of first-order connections. For each connection, get their first-order connections and add them to the current second-order set -- which I've called friend_of_friend.



          def second_connections(self):
          for other in self.connections:
          self.friend_of_friend.union(other.connections)






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 17 '18 at 0:01









          PrunePrune

          43.1k143456




          43.1k143456

























              0














              Since I can't see your class I'm just going to implement the solution without integrating it into a class. I'm also only going to describe the connections as below, since you didn't share your data structure.



              sets = set([("A", "B"),("A", "D"),("A", "C"),("A", "E"),("B", "F"),("D", "G"), ("F","H")])

              def up_to_second(name, sets):
              connectables = [name] + [x[1] for x in sets if x[0] == name]
              return [x for x in sets if x[0] in connectables]

              up_to_second("A", sets)


              This gives your expected outcome:



              [('A', 'B'), ('A', 'D'), ('A', 'C'), ('A', 'E'), ('D', 'G'), ('B', 'F')]


              Assuming your data structure is at least a bit different from this, you'll need to tweak this solution to conform to your patterns. But as best I can tell this is a solution.






              share|improve this answer




























                0














                Since I can't see your class I'm just going to implement the solution without integrating it into a class. I'm also only going to describe the connections as below, since you didn't share your data structure.



                sets = set([("A", "B"),("A", "D"),("A", "C"),("A", "E"),("B", "F"),("D", "G"), ("F","H")])

                def up_to_second(name, sets):
                connectables = [name] + [x[1] for x in sets if x[0] == name]
                return [x for x in sets if x[0] in connectables]

                up_to_second("A", sets)


                This gives your expected outcome:



                [('A', 'B'), ('A', 'D'), ('A', 'C'), ('A', 'E'), ('D', 'G'), ('B', 'F')]


                Assuming your data structure is at least a bit different from this, you'll need to tweak this solution to conform to your patterns. But as best I can tell this is a solution.






                share|improve this answer


























                  0












                  0








                  0







                  Since I can't see your class I'm just going to implement the solution without integrating it into a class. I'm also only going to describe the connections as below, since you didn't share your data structure.



                  sets = set([("A", "B"),("A", "D"),("A", "C"),("A", "E"),("B", "F"),("D", "G"), ("F","H")])

                  def up_to_second(name, sets):
                  connectables = [name] + [x[1] for x in sets if x[0] == name]
                  return [x for x in sets if x[0] in connectables]

                  up_to_second("A", sets)


                  This gives your expected outcome:



                  [('A', 'B'), ('A', 'D'), ('A', 'C'), ('A', 'E'), ('D', 'G'), ('B', 'F')]


                  Assuming your data structure is at least a bit different from this, you'll need to tweak this solution to conform to your patterns. But as best I can tell this is a solution.






                  share|improve this answer













                  Since I can't see your class I'm just going to implement the solution without integrating it into a class. I'm also only going to describe the connections as below, since you didn't share your data structure.



                  sets = set([("A", "B"),("A", "D"),("A", "C"),("A", "E"),("B", "F"),("D", "G"), ("F","H")])

                  def up_to_second(name, sets):
                  connectables = [name] + [x[1] for x in sets if x[0] == name]
                  return [x for x in sets if x[0] in connectables]

                  up_to_second("A", sets)


                  This gives your expected outcome:



                  [('A', 'B'), ('A', 'D'), ('A', 'C'), ('A', 'E'), ('D', 'G'), ('B', 'F')]


                  Assuming your data structure is at least a bit different from this, you'll need to tweak this solution to conform to your patterns. But as best I can tell this is a solution.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 17 '18 at 0:08









                  Charles LandauCharles Landau

                  2,1551215




                  2,1551215






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53346878%2fpython-how-do-i-find-second-connections%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Guess what letter conforming each word

                      Port of Spain

                      Run scheduled task as local user group (not BUILTIN)