quiero hacer algo como String.Format("[{0}, {1}, {2}]", 1, 2, 3)
que devuelve:formato de cadenas en Python
[1, 2, 3]
¿Cómo puedo hacer esto en Python?
quiero hacer algo como String.Format("[{0}, {1}, {2}]", 1, 2, 3)
que devuelve:formato de cadenas en Python
[1, 2, 3]
¿Cómo puedo hacer esto en Python?
las respuestas anteriores tienen uso El formato d%, que se está eliminando progresivamente en Python 3.0+. Suponiendo que usted está utilizando Python 2.6+, un sistema de formato más preparada para el futuro se describe aquí:
http://docs.python.org/library/string.html#formatstrings
Aunque existen características más avanzadas, así, la forma más simple termina buscando muy cerca de lo que ha escrito :
>>> "[{0}, {1}, {2}]".format(1, 2, 3)
[1, 2, 3]
Además, en Python 3.1, no hay necesidad de especificar los ordinales. "[{}, {}, {}]". format (1, 2, 3) –
Los ordinales también son opcionales en Python 2.7 –
¿Tiene una referencia que documenta que el% de formateo se está eliminando gradualmente en Python 3.0+ ? Todavía está en 3.3 - ver http://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting - y mientras los documentos dicen que el método más nuevo de 'format' es preferido, no lo hace d decir que el operador% se está eliminando. – Day
No ha formulado a sí mismo muy encomiable, pero voy a aventurar una conjetura esto es lo que está buscando:
foo = "Hello"
bar = "world"
baz = 2
print "%s, %s number %d" % (foo, bar, baz)
Gracias, ¿qué significa el último%? ¿También tienes que escribir el tipo de la forma en que debería imprimirse, como en C++ con s, d, f, etc.? –
Lo remitiré a la respuesta de DNS anterior que es superior: http://stackoverflow.com/questions/517355/string-formatting-in-python/517471#517471 – JosefAssad
Usted está buscando un formato de cadenas, que en Python se basa en la función sprintf en C.
print "[%s, %s, %s]" % (1, 2, 3)
Para una mirada referencia completa aquí: http://docs.python.org/library/stdtypes.html#string-formatting
Gracias, ¿qué significa el último%? ¿También tienes que escribir el tipo de la forma en que debería imprimirse, como en C++ con s, d, f, etc.? –
Sí. int =% d, float =% f (y hay precisión, así que mira la referencia) –
usted puede hacerlo de tres maneras:
uso de Python:
print [1, 2, 3] # Prints [1, 2, 3]
Mostrando lo mismo con una variable:
numberList = [1, 2]
numberList.append(3)
print numberList # Prints [1, 2, 3]
Use sustituciones de cadenas 'clásicas' (ALA printf de C). Tenga en cuenta los diferentes significados aquí de% como el especificador de formato de cadena, y el% para aplicar la lista (en realidad una tupla) a la cadena de formato. (. Y tenga en cuenta el% se utiliza como el operador de módulo (resto) para expresiones aritméticas)
print "[%i, %i, %i]" % (1, 2, 3)
Nota si usamos nuestra variable predefinida, tendremos que convertirlo en una tupla de hacer esto:
print "[%i, %i, %i]" % tuple(numberList)
uso de Python 3 formato cadena. Esto todavía está disponible en versiones anteriores (desde 2.6), pero es la "nueva" forma de hacerlo en Py 3. Tenga en cuenta que puede usar argumentos posicionales (ordinales) o argumentos con nombre (por lo que he dicho en orden inverso.
print "[{0}, {1}, {2}]".format(1, 2, 3)
Nota los nombres de 'uno', 'dos' y 'tres' pueden ser cualquier cosa que tenga sentido.)
print "[{one}, {two}, {three}]".format(three=3, two=2, one=1)
Para completar, usando el estilo "clásico", también puede hacer: 'imprimir" [% (uno) i,% (dos) i,% (tres) i] "% {'tres': 3, 'dos' : 2, 'uno': 1} ' – DrAl
Para imprimir elementos utilizan secuencialmente {} sin especificar el índice
print('[{},{},{}]'.format(1,2,3))
(wo rks desde python 2.7 y python 3.1)
Si usted no sabe cuántos elementos hay en la lista, este abordaje es el más universal
>>> '[{0}]'.format(', '.join([str(i) for i in [1,2,3]]))
'[1, 2, 3]'
Es más simple para Mouch lista de cadenas
>>> '[{0}]'.format(', '.join(['a','b','c']))
'[a, b, c]'
creo que esta combinación es que falta: P
"[{0}, {1}, {2}]".format(*[1, 2, 3])
Usted tiene muchas soluciones :)
forma sencilla (al estilo C):
print("[%i, %i, %i]" %(1, 2, 3))
Uso str.format()
print("[{0}, {1}, {2}]", 1, 2, 3)
Uso str.Template()
s = Template('[$a, $b, $c]')
print(s.substitute(a = 1, b = 2, c = 3))
Puede rea d PEP 3101 -- Advanced String Formatting
PEP 498 que aterrizó en python 3.6
agregó literalmente la interpolación de cadena, que es básicamente una forma abreviada de format
.
Ahora puede hacer:
f"[{1}, {2}, {3}]"
otros usos comunes que encuentro útiles son:
pi = 3.141592653589793
today = datetime(year=2018, month=2, day=3)
num_2 = 2 # Drop assigned values in
num_3 = "3" # Call repr(), or it's shortened form !r
padding = 5 # Control prefix padding
precision = 3 # and precision for printing
f"""[{1},
{num_2},
{num_3!r},
{pi:{padding}.{precision}},
{today:%B %d, %Y}]"""
que producirá:
"[1,\n 2,\n '3',\n 3.14,\n February 03, 2018]"
en [Python 3.6 +] (https : //docs.python.org/3/whatsnew/3.6.html#pep-498-formatted-string-literals) puede usar 'f" [{1}, {2}, {3}] "' – Soorena