Estoy muy confundido. Tengo una lista:

url1 = 'https://example.tumblr.com/page/'
for num in range(1,5):
    url = url1 + str(num)
    url_list=url.split(',')
    print(url_list)

Con salida:

['https://example.tumblr.com/page/1']
['https://example.tumblr.com/page/2']
['https://example.tumblr.com/page/3']
['https://example.tumblr.com/page/4']

Pero cuando llamo a esto url_list o print(url_list) nuevamente más tarde, solo obtengo esto:

['https://example.tumblr.com/page/4']

Estoy tratando de recorrer y realizar algunas operaciones en cada página, pero cuando llamo a la lista solo devuelve el último elemento y NO tengo idea de cómo solucionarlo. Ya he verificado esta pregunta Analizando desde la lista y no se aplicó ni resolvió mi problema. Por favor ayuda

0
Henrietta Shalansky 13 jun. 2020 a las 20:01

6 respuestas

La mejor respuesta

Notarás que en realidad estás imprimiendo 4 listas allí con una entrada cada una, en lugar de una lista con 4 entradas. Esto es porque eres:

  1. Hacer una nueva variable llamada "url";
  2. Creando una nueva variable llamada "url_list", luego configurándola en url.split (','), que crea una nueva lista que contiene SOLO la URL más nueva; la división no está haciendo nada excepto colocar la URL en una lista.

Desea agregar a una lista preexistente, así:

url1 = 'https://example.tumblr.com/page/'
url_list = []
for num in range(1,5):
    url = url1 + str(num)
    url_list.append(url)
print(url_list)
1
Putnam 13 jun. 2020 a las 17:07

No está implementando una lista / matriz, solo está convirtiendo 'url' en el último método iterado en su bucle for, que es 'https://example.tumblr.com/page/4 '.

En primer lugar, declara url como una lista:

urlList = []

Entonces debe cambiar su bucle for de la siguiente manera:

for num in range(1,5):
    url = url1 + str(num)
    urlList.append(url)

print(urlList)

Haciendo que añada cada nueva iteración que realice a la lista de URL original y luego imprímala por completo

1
Pakito Gama 13 jun. 2020 a las 17:16

¿Qué versión de Python estás usando? En caso de utilizar el cambio 2.7

print(urls)

Para

print urls

Inicialmente convertir url en lista. Entonces sigue:

url_ = 'https://example.tumblr.com/page/'
urls = []
for num in range(1,5):
    url = url_ + str(num)
    url.append(url_)
print(urls)
print(url_)

Funciona...

1
Syed 13 jun. 2020 a las 18:08

Tu url_list no es una lista de la lista. Contendrá solo la url con el número de la iteración actual solamente. Cambie su código a esto: -

url1 = 'https://example.tumblr.com/page/'
url_list = []
for num in range(1,5):
    url = url1 + str(num)
    url = url.split(',')
    url_list.append(url)
    print(url)
print(url_list)
1
Dhaval Taunk 13 jun. 2020 a las 17:04

Su 'url_list' es una variable y una variable solo contiene el último valor asignado. Por lo tanto, debe declarar una lista y luego agregar los elementos en ella.

1
Md. Fantacher Islam 13 jun. 2020 a las 17:10

Intenta esto, funcionará

url1 = 'https://example.tumblr.com/page/'
urls = []
for num in range(1,5):
    url = url1 + str(num)
    urls.append(url)
print(urls)
1
Balasriharsha Cheeday 13 jun. 2020 a las 17:07