Mai mult
Inițializarea unei matrice de dimensiune fixă în python
Aș dori să știu cum pot inițializa o matrice(sau lista), dar pentru a fi populate cu valori, pentru a avea o dimensiune definită.
de exemplu, în C:
int x[5]; /* declared without adding elements*/
Cum fac asta în python?
Multumesc.
138
11
Puteți folosi:
De ce nu't aceste întrebări primesc răspunsuri cu răspunsul evident?
Acest lucru creează o matrice de lungime n care poate stoca obiecte. Se poate't fi redimensionate sau anexată la acesta. În special, aceasta nu't deșeuri spațiu de umplutură lungimea sa. Aceasta este Python echivalentul Java's
Daca're într-adevăr interesați de performanță și spațiu și să știți că o matrice va stoca doar anumite tipuri numerice apoi puteți schimba dtype argument pentru o altă valoare ca int. Apoi numpy va pack aceste elemente direct în matrice, mai degrabă decât a face matrice de referință int obiecte.
Face acest lucru:
Alte solutii va duce la acest tip de problemă:
Cel mai bun pariu este de a utiliza numpy biblioteca.
O soluție simplă este x = [None]*lungimea, dar rețineți că se initializeaza toate lista de elemente pentru a "Nici unul". Dacă dimensiunea este într-adevăr ** fixă, puteți face
x=[Nici unul,Nici unul,Nici unul,Nici unul,Nici unul]
la fel de bine. Dar, strict vorbind, nu te vei't obține nedefinit elemente oricum, pentru că ciuma asta nu't există în Python.x este 2-d matrice, și y este 1-d matrice. Ambele sunt inițializate cu zero.
sau cu adevărat nimic din listă pentru a începe cu:
pe 4 iterație a adăuga:
5 și toate ulterioare:
Ei bine, aș dori să te ajut prin posta un program de probă și de ieșire
Program:
Ieșire :-
Sper ca acest respinga unele foarte concept de bază de-a ta privire la declararea acestora. Pentru a inițializa cu alte valori specifice, cum ar fi inițializarea ei cu
0
.. puteți să le declare ca:Sper că vă ajută..!! ;)
Puteți încerca să utilizați Descriptor, pentru a limita dimensiunea
IEȘIRE:
Un singur lucru mi se pare ușor să faceți este să am stabilit o serie de siruri de caractere goale pentru dimensiunea prefer, de exemplu
Cod:
Ieșire:
Sper că acest lucru este de ajutor :)
Dacă lucrați cu bytes ai putea folosi interna
bytearray
. Dacă lucrați cu alte integrantă tipuri uita-te la builtin "matrice".În mod special înțeleagă că o "listă" nu este o "matrice".
Dacă, de exemplu, sunteți încercarea de a crea un tampon pentru a citi conținutul fișierului într-ai putea folosi bytearray după cum urmează (există modalități mai bune de a face acest lucru, dar exemplul este valabil):
În acest fragment de `bytearray de memorie este preallocated cu lungime fixă de NUME de fișier este dimensiunea în octeți. Acest preallocation permite utilizarea tampon protocol mai eficient de a citi fișiere într-un mutabil tampon fără o serie de copiere. Există modalități mai bune de a face acest lucru, dar cred că acest lucru oferă un răspuns la întrebarea ta.