Sólo la última iteración de los bucles while se guarda.

Tengo este codigo

symbolslist = ["100","200","300","400","500","600","700","800","900","1000","1500","2000","3000","4000","5000","7000","10000"] i=0 while i<len(symbolslist): htmltext = urllib.urlopen("http://www.fifacoinszone.com/default/quick/getpricedetail? platform_id=7&coins="+symbolslist[i] +"&cur=GBP") data = json.load(htmltext) pricelist = data["single_price_just"] print pricelist, i+=1 

Esto produce:

 4.69 9.32 13.91 18.46 22.96 27.41 31.82 36.18 40.50 44.78 66.83 88.66 132.32 175.55 218.34 304.15 345.86 430.17 3.94 7.83 11.69 15.51 19.29 23.03 26.74 30.40 34.03 37.62 56.15 74.50 111.19 147.52 183.48 255.58 363.30 

lo cual está bien, pero cuando bash cortar este código en variables más pequeñas no me lo permite. Por ejemplo, lista de precios, [0:20] solo generará la última iteración del bucle while. Lo siento, soy nuevo en Python.

Su variable de lista de pricelist se sobrescribe en cada iteración del bucle. Debe almacenar su resultado en una estructura de datos de algún tipo, como una list (y una list funcionará con la notación de [0:20] que desea usar):

 symbolslist = ["100","200","300","400","500","600","700","800","900","1000","1500","2000","3000","4000","5000","7000","10000"] pricelist = [] #empty list i=0 while i 

Ahora puedes hacer:

 pricelist[0:20] #returns members 0 to 19 of pricelist 

Justo como querías.

También sugiero usar un bucle for lugar de incrementar manualmente su contador en un bucle while.

Python 2:

 for i in xrange(len(symbolslist)): 

Python 3:

 for i in range(len(symbolslist)): #xrange will also work in Python 3, but it's just there to #provide backward compatibility. 

Si lo haces de esta manera, puedes omitir la línea i+=1 al final.