Cum se declară array-uri în python3 [duplicat] (Programare, Python, Array-Uri, Python 3.X, Declara)

Janith a intrebat.

Vreau să declar o matrice în python3. Am încercat, dar am primit o eroare

Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> ip_pb=[]
>>> ip_pb[0]="0111111100000000000000011110001"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> 

După ce am făcut asta, funcționează

>>> ip_pb=[""]
>>> ip_pb[0]="0111111100000000000000011110001"
>>> print(ip_pb)
['0111111100000000000000011110001']

Dar, eu caut o altă metodă. Dacă nu știm câte valori sunt în matrice, nu putem declara matricea în metoda de mai sus.

Comentarii

  • Vă rugăm să citiți un tutorial pe python lists. Se pare că vă lipsesc multe informații de bază esențiale despre ele –  > Por sshashank124.
  • ip_pb=[], , aici este lista gol, , dar încercați să accesați primul element care se află în afara limitei/intervalei listei și de aici și eroarea. Care este întrebarea dumneavoastră? –  > Por Ajay Dabas.
  • ip_pb.append() va insera un element la sfârșitul listei. –  > Por Stidgeon.
  • Acest lucru răspunde la întrebarea dumneavoastră? IndexError: indexul de atribuire a listei este în afara intervalului – Python cu un array –  > Por Stidgeon.
  • Modul tău de inițializare sugerează că s-ar putea să vii dintr-un fundal php. S-ar putea să vrei să verifici: slideshare.net/bennuttall/python-for-php-developers –  > Por Kaan E..
4 răspunsuri
RishiC

Bazându-vă pe ultima dvs. linie (că nu știți câte elemente există în matrice), doriți să creați o matrice goală și apoi să utilizați append() pentru a adăuga valori în el.

Versiunea modificată a codului pe care ați furnizat-o în întrebare:

ip_pb = []
ip_pb.append("0111111100000000000000011110001")
print(ip_pb)

4ndt3s

Ar trebui să inițializați array-ul dacă doriți să îl utilizați în acest mod:

>>> ip_pb = [None] * 5
>>> ip_pb
[None, None, None, None, None]
>>> ip_pb[1] = 3
>>> ip_pb
[None, 3, None, None, None]

Doc
  1. Creați o listă goală (array) ca x = []
  2. Adăugați un număr oarecare de elemente ca x.append(25), , x.append(100)

Nu este necesar să cunoașteți numărul de elemente în prealabil, dar dacă doriți să știți numărul de elemente din listă, atunci utilizați

print(len(x))

Pentru a imprima lista completă, utilizați

print(x)

Pentru a imprima fiecare element în parte

for i in x:
    print(i)

Bi Ao

În Python, în mod normal, se numește list în loc de tradiționalul array.list în Python este întotdeauna o extensie dinamică, ceea ce înseamnă că nu are o dimensiune fixă, spre deosebire de ceea ce se numește array.

pentru dimensiunea fixă array, , cred că Python însuși are o bibliotecă standard pe care o puteți utiliza cu import array dar, din păcate, aceasta are tipuri de date limitate.array

De dragul simplității, poate că puteți încerca doar această metodă:

def array(fill, n):
    return [fill] * n

a = array("", 10)
a[0] = "10010101"
a[9] = "10230123"
a[10] # IndexError