Soy nuevo en python. Tengo un for loop dentro del cual tengo la condición if ...:.

Quiero imprimir la (lista) de elementos que pasaron por el bucle for.

Idealmente, los elementos deben estar separados por espacios o por comas. Este es un ejemplo simple, destinado a usarse con arcpy para imprimir los archivos de forma procesados.

Ejemplo ficticio:

for x in range(0,5):
    if x < 3:
        print "We're on time " + str(x)

Lo que probé sin éxito dentro y fuera del bucle if y for:

print "Executed " + str(x)

Se espera que regrese (pero no en formato list), ¿tal vez a través de algo como arcpy.GetMessages()?

Executed 0 1 2 
-2
maycca 29 oct. 2017 a las 01:00

3 respuestas

La mejor respuesta
phrase = "We're on time "

# create a list of character digits (look into list comprehensions and generators)
nums = [str(x) for x in range(0, 5) if x < 3]

# " ".join() creates a string with the elements of a given list of strings with space in between
# the + concatenates the two strings
print(phrase + " ".join(nums))

Nota. Una razón para los votos negativos podría ayudarnos a los nuevos usuarios a comprender cómo deberían ser las cosas.

1
Iosif Serafeimidis 28 oct. 2017 a las 22:33

Si usa Python3, podría hacer algo como esto ...

print("Executed ", end='')
for x in range(0,5):
    if x < 3:
        print(str(x), end=' ')
print()
0
0TTT0 28 oct. 2017 a las 22:04

Registre sus x en una lista e imprima esta lista al final:

x_list = []
for x in range(0,5):
    if x < 3:
        x_list.append(x)
        print "We're on time " + str(x)
print "Executed " + str(x_list)
1
jmd_dk 28 oct. 2017 a las 22:13