range
gibt in Python3 kein list
zurück range(2, 10) + ["J", "Q", "K", "A"]
funktioniert nicht, list(range(2, 10)) + ["J", "Q", "K", "A"]
jedoch. Sie können auch itertools.chain
verwenden, um Iterables zu verketten:
Das verschachtelte Verständnis stellt natürlich ein kartesisches Produkt dar, für das Sie auch ein Util verwenden können:
%Vor%Das Problem mit Ihrem aktuellen Code ist hier:
%Vor% Zunächst sollte es range(2, 11)
sein, sonst werden Karten mit der Nummer 10 weggelassen. Zweitens, um dem Bereich und der Liste beizutreten, müssen Sie Folgendes tun:
Also wird das Endergebnis sein:
%Vor%Ich denke, das wird Ihnen die gewünschte Ausgabe geben (zuerst alle Nicht-Bildkarten, dann alle Bildkarten).
Das Problem mit Ihrem aktuellen Code ist hier:
%Vor% Zunächst sollte es list(range(2, 11))
sein, sonst werden Karten mit der Nummer 10 weggelassen. Zweitens, um dem Bereich und der Liste beizutreten, müssen Sie Folgendes tun:
Also wird das Endergebnis sein:
%Vor%Ich denke, das wird Ihnen die gewünschte Ausgabe geben (zuerst alle Nicht-Bildkarten, dann alle Bildkarten).
list()
gibt in Python3 kein range()
zurück %code% funktioniert nicht, %code% jedoch. Sie können auch %code% verwenden, um Iterables zu verketten:
Das verschachtelte Verständnis stellt natürlich ein kartesisches Produkt dar, für das Sie auch ein Util verwenden können:
%Vor%In Python3 können Sie das Entpacken verwenden:
%Vor%Fokussieren Sie nur in dem Fehler, den Sie bekommen:
TypeError: nicht unterstützte Operandentyp (en) für +: 'range' und 'list
Ich werde Ihnen eine Erklärung geben.
Ihr aktueller Code funktioniert in Python 2 :
%Vor%wird gedruckt:
%Vor%In Python 3 müssen Sie %code% :
verwenden %Vor%wird gedruckt:
%Vor%Sie müssen %code% verwenden, weil %code% in Python 3 erstellt einen unveränderlichen Sequenztyp , keine Liste.
In Python 3.6.3 Gibt es eine Möglichkeit, eine Liste nach der anderen zu durchlaufen?
Zum Beispiel:
%Vor%(In diesem Fall möchte ich die Bildkarten direkt nach den Nicht-Bildkarten durchlaufen.)
Zur Klarstellung: Die obige Zeile wirft ein:
%Vor%Das ist mein Problem.
Siehe @schwobaseggls Lösung für das, was Sie wollen, aber ich bevorzuge es, Karten als 2-stellige Zeichenfolge darzustellen:
%Vor%Das ist meiner Meinung nach besser lesbar und wird sich immer noch wie ein Tupel von Rang, Anzug verhalten.
Tags und Links python loops python-3.x