reemplazar - python separar string por caracter
Cadena de Python y concatenación de enteros (9)
NOTA:
El método utilizado en esta respuesta (backticks) está en desuso en las versiones posteriores de Python 2, y se elimina en Python 3. En su lugar, use la función str()
.
Puedes usar :
string = ''string''
for i in range(11):
string +=`i`
print string
Se imprimirá string012345678910
.
Para obtener string0, string1 ..... string10
puede usar esto como se sugiere en @YOU
>>> string = "string"
>>> [string+`i` for i in range(11)]
Actualizar según Python3
Puedes usar :
string = ''string''
for i in range(11):
string +=str(i)
print string
Se imprimirá string012345678910
.
Para obtener string0, string1 ..... string10
puede usar esto como se sugiere en @YOU
>>> string = "string"
>>> [string+str(i) for i in range(11)]
Esta pregunta ya tiene una respuesta aquí:
Quiero crear una cadena usando un entero agregado, en un bucle for. Me gusta esto:
for i in range(1,11):
string="string"+i
Pero devuelve un error:
TypeError: unsupported operand type(s) for +: ''int'' and ''str''
¿Cuál es la mejor manera de concatenar la cadena y el entero?
Hice algo mas Quería reemplazar una palabra, en listas de listas, que contenía frases. Quería reemplazar esa cadena / palabra con una nueva palabra que será una unión entre la cadena y el número, y ese número / dígito indicará la posición de la frase / sublista / listas de listas.
Es decir, reemplacé una cadena con una cadena y un número incremental que la sigue.
myoldlist_1=[['' myoldword''],[''''],[''tttt myoldword''],[''jjjj ddmyoldwordd'']]
No_ofposition=[]
mynewlist_2=[]
for i in xrange(0,4,1):
mynewlist_2.append([x.replace(''myoldword'', "%s" % i+"_mynewword") for x in myoldlist_1[i]])
if len(mynewlist_2[i])>0:
No_ofposition.append(i)
mynewlist_2
No_ofposition
La concatenación de una cadena y un entero es simple: solo use
abhishek+str(2)
Puedes usar un generador para hacer esto!
def sequence_generator(limit):
""" A generator to create strings of pattern -> string1,string2..stringN """
inc = 0
while inc < limit:
yield ''string''+str(inc)
inc += 1
# to generate a generator. notice i have used () instead of []
a_generator = (s for s in sequence_generator(10))
# to generate a list
a_list = [s for s in sequence_generator(10)]
# to generate a string
a_string = ''[''+", ".join(s for s in sequence_generator(10))+'']''
Si queremos una salida como ''string0123456789''
entonces podemos usar la map function
y join
método de cadena.
>>> ''string''+"".join(map(str,xrange(10)))
''string0123456789''
Si queremos una lista de valores de cadena, use el método de list comprehension
.
>>> [''string''+i for i in map(str,xrange(10))]
[''string0'', ''string1'', ''string2'', ''string3'', ''string4'', ''string5'', ''string6'', ''string7'', ''string8'', ''string9'']
Nota:
Utilice xrange()
para Python 2.x
range()
para Python 3.x
for i in range (1,10):
string="string"+str(i)
Para obtener string0, string1 ..... string10
, puedes hacer como
>>> ["string"+str(i) for i in range(11)]
[''string0'', ''string1'', ''string2'', ''string3'', ''string4'', ''string5'', ''string6'', ''string7'', ''string8'', ''string9'', ''string10'']
for i in range(11):
string = "string{0}".format(i)
Lo que hiciste ( range[1,10]
) es
- un TypeError ya que los corchetes denotan un índice (
a[3]
) o una porción (a[3:5]
) de una lista, - un error de sintaxis desde
[1,10]
no es válido, y - un error doble off-by-one dado que el
range(1,10)
es[1, 2, 3, 4, 5, 6, 7, 8, 9]
, y parece querer[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Y string = "string" + i
es un TypeError ya que no se puede agregar un entero a una cadena (a diferencia de JavaScript).
Mire la documentación del nuevo método de formato de cadena de Python , es muy poderoso.
for i in range[1,10]:
string = "string" + str(i)
La función str(i)
convierte el número entero en una cadena.
string = ''string%d'' % (i,)