2017-11-25 1 views
0

So habe ich:Elemente mit allen Buchstaben in einer Liste löschen?

letters = list(''.join(i) for i in permutations('A''B''C''D''E''F''G''H''J''K''M''N''P''Q''R''T''V''W''X''Y''Z''1''2''3''4''5''6''7''8''9''0', 3)) 
print(letters) 

und druckt es einige Kombinationen, die alle Buchstaben oder alle Zahlen sind, oder zwei Zahlen und einen Brief. Ich möchte nur Kombinationen mit zwei Buchstaben und einer Zahl. Gibt es eine Möglichkeit, alle Listenelemente zu löschen, die nicht nur zwei Buchstaben und eine Zahl enthalten?

P.S. Ich bin ein Python-Neuling, also versuche bitte, die Antworten für mich verständlich zu machen.

+1

Ich denke, dass Sie das selbst lösen können, weil Sie schon wussten, wie man iterator sogar iertools verwendet. Es scheint also keinen Rat zu geben. –

Antwort

2

Sie zeigen nur ein wenig Arbeit, so werde ich nur Hinweise geben. Arbeite an diesen Hinweisen und wenn du nicht fertig bist, zeig uns deine Versuche und wir können dir weiterhelfen.

Angesichts Ihrer Start-Code, ist Ihnen anscheinend nicht die Reihenfolge Ihrer Triples, und Sie wollen alle Permutationen der drei Elemente innerhalb der Triple. Es ist besser, genau das zu generieren, was Sie wollen, als mehr zu generieren und das zu entfernen, was Sie nicht wollen. Hier ist, wie Sie itertools zu diesem verwenden können.

Wählen Sie für jedes Tripel zuerst eine Kombination aus 2 Buchstaben aus dem Alphabet. Wählen Sie dann eine Ziffer. Geben Sie diese drei Elemente in allen Bestellungen permutiert.

Sie können jeden Schritt tun oben mit itertools mit combinations, product, permutations und eine Liste Verständnis. Sie können dies alles in einer Anweisung tun, indem Sie diese Funktionen verschachteln oder zur besseren Lesbarkeit verteilen. Meine bevorzugte Antwort hat zwei Zeilen, wobei die erste Zeile ein Generatorverständnis verwendet, um einen Generator zu erzeugen, der in der zweiten Zeile verwendet wird. Sie sollten auch zwei Konstanten erstellen, eine für das Alphabet und die andere für die Ziffern.

Ich bezweifle, dass Sie tatsächlich die gesamte resultierende Liste ausdrucken möchten, die 19.500 Strings enthält.

+0

Schöne, saubere Antwort. –

Verwandte Themen