Prima di tutto un appunto, quando tu scrivi
non devi incrementare il contatore a ogni iterazione, in quanto viene già fatto dal for.
Ci sono poi diversi modi per definire una lista. Se vuoi semplicemente una lista di lunghezza N contenente lo stesso valore V ripetuto, puoi usare la scrittura
Python:
L = [V]*N
#esempio
>>> [0]*5
[0, 0, 0, 0, 0]
Per qualcosa di più elaborato, piuttosto che usare append, è meglio ricorrere a una "pythonic form" tipica di questo linguaggio. Nel tuo caso specifico puoi scrivere:
Python:
lista = [int(input()) for i in range(lunghezza)]
#ma visto che del "contatore" i non te ne fai niente, puoi anche scrivere
lista = [int(input()) for _ in range(lunghezza)]
In generale, gran parte dei cicli iterativi del tipo
Python:
lista = [ ]
for i in R:
lista.append(fai_qualcosa(i))
possono essere riscritti come
Python:
lista = [fai_qualcosa(i) for i in R]
Il costrutto completo ammette ulteriori varianti, utile quando si vuole verificare una condizione sul valore iterato (quindi non un semplice contatore diversamente dal tuo caso):
Python:
#Dato un oggetto iterabile i cui elementi sono numeri interi, ricopia in "lista" solo i valori pari
lista = [ ]
for i in R:
if i%2 == 0:
lista.append(i)
#può essere riscritto come:
lista = [i for i in R if i%2==0]
E la flessibilità continuerebbe ancora... ma lascio il divertimento a te :D