Ich möchte Conditional List Verständnis verwenden, um eine "gültige" Liste von Schaltern zurückzugeben. Ein gültiger Schalter ist der folgende: Die ersten beiden Buchstaben repräsentieren das Land, also [CH]SW002
. Diese Buchstaben müssen mit den ersten beiden Buchstaben des aktuellen Geräts übereinstimmen. Wenn es sich bei dem Gerät um ein Notebook handelt, US[NB]001
, kann die Landesvorwahl ignoriert werden.Python bedingter Ausdruck ungültige Syntax
Die Geräte unten sollten daher die folgenden Schalter als:
- CHPC001: CHSW002
- USPC001: USSW001, USSW002
- USNB001: USSW001, USSW002, CHSW002
Unten ist mein Code, aber es wirft einen Syntaxfehler auf:
switches = ['USSW001', 'USSW002', 'CHSW002']
devices = ['CHPC001', 'USPC001', 'USNB001']
for device in devices:
print([sw if 'nb' in device else sw if device[:2] in sw for sw in switches])
Ich habe nicht verstanden, welche Beziehungen sollten im Endergebnis sein? Wie sollten sie aussehen? – RomanPerekhrest
Sie haben zwei solche Ausdrücke, und die zweite fehlt ein 'else'. Was passiert, wenn der Test in 'sw if device [: 2] in sw' 'False' ist? –
'print ([sw if 'nb' im Gerät else sw für sw in switches wenn Gerät [: 2]])' zumindest analysiert. – melpomene