¿Es posible tener un diccionario o establecer la comprensión dentro de una cadena f en python 3.6+?
Parece sintácticamente imposible:
names = ['a', 'b', 'c'] pks = [1, 2, 3] f"{{name : pk for name, pk in zip(names, pks)}}"
Esto devolverá:
{name : pk for name, pk in zip(names, pks)}
Este es el comportamiento esperado, los corchetes dobles dan como resultado corchetes literales en la salida ya que la expresión no se evalúa.
¿Alguien ha encontrado una solución para permitir comprensiones de diccionario/conjunto dentro de f-strings?
Agregue espacios, se requieren sintácticamente y no aparecerán en la cadena resultante:
names = ['a', 'b', 'c'] pks = [1, 2, 3] f"{ {name: pk for name, pk in zip(names, pks)} }" # ▲ ▲ # │ │ # ╰───────────────See the spaces?────────────╯