python, zoznamy: ako najisť spoločné a rozdielne prvky

Sekcia: Programovanie 25.11.2008 | 23:16
Avatar peter s.   Používateľ
Ahoj,
predstavte si situáciu, máte 2 zoznamy
I = [1,2,3,5,8,9]
K = [2,3,4,5,6]
potrebujem vytvoriť z toho tri zoznamy:
a) spločné prvky
b) prvky ktoré su v I ale nie v K
c) prvky ktoré su v K ale nie v I
Existuje na to nejaké v pythone natívna funcia?
    • Re: python, zoznamy: ako najisť spoločné a rozdielne prvky 25.11.2008 | 23:32
      tatar   Návštevník
      • Re: python, zoznamy: ako najisť spoločné a rozdielne prvky 26.11.2008 | 09:16
        Peter S.   Návštevník
        bez toho aby som sa stal GURU na zoznamy v pythone to nejde? ozaj by mi stačilo konkrétne napísať tú funckiu ako sa to robí, ja si to už analogicky odvodím na obdobné prípady....
        • Re: python, zoznamy: ako najisť spoločné a rozdielne prvky 26.11.2008 | 09:50
          tatar   Návštevník
          ok, takze spolocne prvky

          #!/usr/bin/env python

          l1 = [1,2,3,4,5]
          l2 = [1,2,7,8,9,5]

          l3 = [ j for i in l1 for j in l2 if i==j]

          print l3

          ale neodpustim si jednu poznamku, nikto nemusi byt nejaky guru, staci ak do googla napise python a list comprehension examples!
          • Re: python, zoznamy: ako najisť spoločné a rozdielne prvky 26.11.2008 | 10:07
            Peter S.   Návštevník
            diky za príklad
            inak ako mám vedieť, že hľadám slovo comprehension... čo to má so zoznamami, prienikmi a pod. spoločné....
          • Re: python, zoznamy: ako najisť spoločné a rozdielne prvky 26.11.2008 | 10:08
            Avatar BlueWay Gentoo  Používateľ
            Pekne Tatar ;)
            ja len doplnim, ze pekne to ide aj cez mnoziny (sets)
            s1 = set([1,2,3,4,5])
            s2 = set([1,2,7,8,9,5])

            #spolocne prvky
            print s1 - (s1 - s2)

            #prvky, ktore su v s1 ale nie su v s2
            print s1 - s2

            #prvky, ktore su v s2 ale nie su v s1
            print s2 - s1
            • Re: python, zoznamy: ako najisť spoločné a rozdielne prvky 26.11.2008 | 10:15
              tatar   Návštevník
              banan, toto sa mi paci viac ;)
    • Re: python, zoznamy: ako najisť spoločné a rozdielne prvky 26.11.2008 | 09:52
      Avatar Zefram Cochrane MS Windows Vista Ultimate 64bi  Používateľ
      google: a) python list intersection, b) python list subtraction
      vsetky riesenie co som videl pouzivaju nejaky ekvivalent funkcie for (napr. filter)