Šobrīd es izmantoju sarakstu, un gaidīju kaut ko līdzīgu:
verts = list (1000)
Vai man tā vietā vajadzētu izmantot masīvu?
Jums vajadzētu apsvērt iespēju izmantot dict
tipu, nevis iepriekš inicializētu sarakstu. Vārdnīcas meklēšanas izmaksas ir nelielas un salīdzināmas ar izmaksām, kas rodas, piekļūstot patvaļīgam saraksta elementam.
Un, izmantojot kartēšanu, jūs varat rakstīt:
aDict = {}
aDict[100] = fetchElement()
putElement(fetchElement(), fetchPosition(), aDict)
Un putElement
funkcija var saglabāt elementu jebkurā pozīcijā. Un, ja jums ir nepieciešams pārbaudīt, vai jūsu kolekcijā ir elements dotajā indeksā, ir pitoniskāk rakstīt:
if anIndex in aDict:
print "cool!"
nekā:
if not myList[anIndex] is None:
print "cool!"
Tā kā pēdējais no minētajiem pieņēmumiem paredz, ka neviens reāls elements jūsu kolekcijā nevar būt None
. Un, ja tā notiek, jūsu kods rīkojas nepareizi.
Un, ja jums izmisīgi nepieciešama veiktspēja, un tāpēc jūs cenšaties iepriekš inicializēt savus mainīgos un rakstīt pēc iespējas ātrāku kodu - mainiet valodu. Ātrāko kodu nevar uzrakstīt Python valodā. Tā vietā jums vajadzētu izmēģināt C valodu un ieviest apvalkus, lai izsauktu savu iepriekš inicializēto un iepriekš kompilēto kodu no Python.
Nezinot vairāk par problēmu jomu, ir grūti atbildēt uz jūsu jautājumu. Ja vien jūs neesat pārliecināts, ka jums ir jādara kaut kas vairāk, pitoniskais veids, kā inicializēt sarakstu, ir šāds:
verts = []
Vai jūs patiešām redzat veiktspējas problēmu? Ja jā, kas ir veiktspējas vājā vieta? Nemēģiniet atrisināt problēmu, kuras jums nav. Iespējams, ka veiktspējas izmaksas, kas saistītas ar dinamisku masīva aizpildīšanu līdz 1000 elementiem, ir pilnīgi nesvarīgas programmai, ko jūs patiesībā mēģināt uzrakstīt.
Matu klase ir noderīga, ja sarakstā iekļautie elementi vienmēr būs konkrēta primitīva fiksēta garuma tipa (piemēram, char, int, float). Taču tai nav nepieciešama arī iepriekšēja inicializācija.