[Tutor] problem solving with lists

alan.gauld at yahoo.co.uk alan.gauld at yahoo.co.uk
Sat Mar 19 08:24:31 EDT 2022


   On 19 Mar 2022 10:57, marcus.luetolf at bluewin.ch wrote:

     Many thanks again.

     Using your first advice my code got even clearer :

      

     >lst = [['a', 'b', 'c'], ['d', 'e', 'f'], ['a', 'b', 'g'], ['b', 'c',
     'h']]

     >sub_lst = []

      

     >for p in lst:

     >    pair1 = p[0:2]

     >    pair2 = list(p[0]+ p[2])

     >    pair3 = p[1:]

     >    if pair1 not in sub_lst or pair2 not in sub_lst or pair3 not in
     sub_lst:

     >        sub_lst.append(p)

     >print(sub_lst)

      

     But your second advice :

     >if pair1 not in sub_lst or pair2 not in sub_lst or pair3 not in
     sub_lst:

      

     Still yields all four sublists instead of eliminating the last 2
     sublists , ['a', 'b', 'g'], ['b', 'c', 'h'],

     since ‘a’, ‘b’ and ‘b’, ’c’ were already in the first 2 sublists.

     I think python does not allow to check if an item is in a list with only
     slices of the item to be checked ??

     Python does what you ask. If you get the wrong answer then you are
     asking the wrong question. 

   But I still don't really understand what you are trying to do. Have you
   looked at Dennis replies, his approach is more likely to get you what you
   want.... 
   Alan g

     Von: alan.gauld at yahoo.co.uk <alan.gauld at yahoo.co.uk>
     Gesendet: Freitag, 18. März 2022 19:16
     An: marcus.luetolf at bluewin.ch
     Cc: tutor at python.org
     Betreff: Re: AW: AW: [Tutor] problem solving with lists

      

      

      

     On 18 Mar 2022 15:12, [1]marcus.luetolf at bluewin.ch wrote:

       …many thanks for your quick replay.

       When I used a for loop :

        

       >lst = [['a', 'b', 'c'], ['d', 'e', 'f'], ['a', 'b', 'g'], ['b', 'c',
       'h']]

       >sub_lst = []

       >for p in lst:

       >    pair1 = lst[p][0:2]

      

      

     P is not an index its the actual sublist. So you just need

      

     Pair1 = p[0:2]

      

      

       > 

       > ected. But I don’t understand

       what you mean with

       If pair 1 not empty

       Or pair2 not empty

       Or pair3 not in newlist

        

       What is the difference between pair not beeing empty or not beeing in
       new_list ?

      

     Pair not empty means pair contains anything other than the empty list.

     Pair not in newlist means pair is not empty and it's contents are not I.
     Newlist. Very different! 

       How should I define the if condition properly ?

      

      

     You need, I assume, 

      

     If Pair1 not in newlist 

     Or pair2 not in newlist

     Or pair3 not in newlist

      

     Alan g. 

        

References

   Visible links
   1. mailto:marcus.luetolf at bluewin.ch


More information about the Tutor mailing list