Antworte auf:  Python: einelementige Kombinationen aus Listen von mrdjv2
Forum:  Programmieren, moderiert von: matph

[Zur Forum-Gliederung] [Wie man Fragen beantwortet] [Themenstart einblenden]

  Alle registrierten Mitglieder können Mitteilungen schreiben.
Benutzername:
Passwort:
Nachricht-Icon:                   
                  
              
Nachricht:


 
 


Input assistance tools (JavaScript): [Link extern intern] [MathML?] [$$?]
[fed-area] [LaTeX-inline] [LaTeX-display] [Tikz] [hide-area][show-area] [Source code [num.]][?]
 Show Preview      Write using fedgeo formula editor or Latex.

Smilies for your message:
😃 😄 😁 🙂 🙃 😉 🤗 🤫 🤔 🙄 😴 🤒 😎 😮 😲 😂
🙁 😖 😒 😐 😡 👌 👍 👎 🤢 🤧 🥵 🥶 😵 🤯 😛 😷
Optionen: Deaktiviere HTML in dieser Nachricht
Deaktiviere MATHML in dieser Nachricht. Wenn Dein Text $-Zeichen enthält, die nicht LaTeX-Formeln begrenzen.
Deaktiviere Smilies in dieser Nachricht
Zeige die Signatur (Kann in 'Mein Profil' editiert werden.)
    [Abbrechen]
 
Beachte bitte die [Forumregeln]


Themenübersicht
mrdjv2
Aktiv
Dabei seit: 05.07.2003
Mitteilungen: 1001
Wohnort: Aachen

 Beitrag No.3, eingetragen 2021-03-01 21:19    [Diesen Beitrag zitieren]

Vielen Dank!

Im Prinzip macht das ja alles, was ich haben möchte, aber es ist doch deutlich langsamer als ich erwartet habe.
Bei einer Liste mit 54 Listen ist das alles nicht mehr ganz so performant...

Mal sehen, ob ich da noch etwas ausdünnen kann...


Nuramon
Senior
Dabei seit: 23.01.2008
Mitteilungen: 2826
 Beitrag No.2, eingetragen 2021-02-27 01:04    [Diesen Beitrag zitieren]

Hallo,

mit itertools.product:
Python
from itertools import product
x = [[1, 4, 9, 7], [1, 3, 4, 7], [1, 3, 5, 7]]
 
y = list(map(list, product(*x))) 
Wenn du nicht explizit auf eine Liste von Listen als Resultat bestehst, kannst du dir das Mapping am Ende natürlich sparen.


tactac
Senior
Dabei seit: 15.10.2014
Mitteilungen: 2074
 Beitrag No.1, eingetragen 2021-02-27 00:51    [Diesen Beitrag zitieren]

Ohne groß auf Performance zu achten, eine Umsetzung mittels einer Übersetzung einer Instanz von Haskells sequence:
Python
def sequence(xss):
    if len(xss) == 0:
        yield []
        return
    for x in xss[0]:
        for xs in sequence(xss[1:]):
            yield [x]+xs
 
def oneofeach(xss):
    return list(sequence(xss))



mrdjv2
Aktiv
Dabei seit: 05.07.2003
Mitteilungen: 1001
Wohnort: Aachen

 Themenstart: 2021-02-27 00:07    [Diesen Beitrag zitieren]

Hallo zusammen,

ich hab ein eigentlich relativ einfaches Problem. Ich habe eine Liste von Listen (z.B. [[1, 4, 9, 7], [1, 3, 4, 7], [1, 3, 5, 7]]). In diesem Beispiel sind die Einzellisten nur zufällig vier Einträge lang. Es sind aber immer mindestens 2 Einträge und höchstens 9 Einträge.

Ich interessiere mich nun für alle Möglichkeiten, wenn ich aus jeder Teilliste genau eine Zahl herausziehe.

Im oberen Beispiel wäre das etwa (zumindest der Anfang):
[1, 1, 1]
[1, 1, 3]
[1, 1, 5]
[1, 1, 7]

[1, 3, 1]
[1, 3, 3]
.
.
.

Weiß jemand, wie ich das in Python einfach realisiert bekomme?

Danke und Gruß
Daniel


 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]