Ich möchte Schlüssel-Wert-Paare in einer for-Schleife in zwei Farben drucken und möchte dies nicht in Tonnen von Zeilen aufteilen.
Die von mir geschriebene Funktion sieht so aus:
def TABLES_ONLY_FOUR():
TABLES_TYPES_FOUR = {
"TABLE 2": "4 Seats",
"Table 4": "4 Seats",
"Table 5": "4 Seats",
"Table 8": "4 Seats",
"Table 9": "4 Seats"
}
for k, v in TABLES_TYPES_FOUR.items():
print(k, v, sep=" : ")
Ich muss dies in einer Spalte drucken, wie es ist. Hier habe ich auch einige Farben gefunden:
from colorama import Fore, Back, Style
Wenn ich dies jedoch für eine Zeile des Codes ausprobiert habe, bleibt die Ausgabe aus irgendeinem Grund in der ausgewählten Farbe für alle anderen Druckvorgänge und dies löst mein Problem sowieso nicht.
Ich verwende Linux Minut und der Code für Colorama sah so aus:
print(Fore.RED + "xxx"
Fragen:
1) Wie kann ich meine for-Schleife ändern, um zB "Tabelle 4" und "Tabelle 8" mit ihren Werten in Rot und den Rest von "Tabelle x" in Grün zu drucken?
2) Später werde ich auf diese "Tabellen" verweisen, wenn sie grün oder rot markiert sind. Wie geht das reibungslos?
Fügen Sie einfach die Farbe in den Werten hinzu und verwenden Sie Fore.RESET
zum Zurücksetzen der ursprünglichen Tintenfarbe:
from colorama import Fore, Back, Style, init
init() # probably required only on Windows < Windows 10
def TABLES_ONLY_FOUR():
TABLES_TYPES_FOUR = {
"TABLE 2": ("4 Seats",Fore.GREEN),
"Table 4": ("4 Seats",Fore.RED),
"Table 5": ("4 Seats",Fore.GREEN),
"Table 8": ("4 Seats",Fore.RED),
"Table 9": ("4 Seats",Fore.GREEN),
}
for k, (v,col) in TABLES_TYPES_FOUR.items():
print("{}{}: {}{}".format(col,k,v,Fore.RESET))
TABLES_ONLY_FOUR()
Alternative, ohne Ihr Datenmodell zu ändern, wie Steven vorgeschlagen hat:
for k, v in TABLES_TYPES_FOUR.items():
print("{}{}: {}{}".format(Fore.RED if k in {'Table 4', 'Table 8'} else Fore.GREEN,k,v,Fore.RESET))
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen