Ik wil weten hoe je een tweedimensionale array in Python moet declareren.
arr = [[]]
arr[0].append("aa1")
arr[0].append("aa2")
arr[1].append("bb1")
arr[1].append("bb2")
arr[1].append("bb3")
De eerste twee opdrachten werken prima. Maar wanneer ik probeer te doen, arr[1].append("bb1")
, ik krijg de volgende foutmelding:
IndexError: list index out of range.
doe ik iets dwaas in het proberen om de 2-D-array te verklaren?
bewerken:
, maar ik weet niet het aantal elementen in de array (beide rijen en kolommen).
Antwoord 1, Autoriteit 100%
U “declareren” arrays of iets anders in Python. U wijst eenvoudig aan een (nieuwe) variabele toe. Als u een multidimensionale array wilt, voegt u eenvoudig een nieuwe array toe als een array-element.
arr = []
arr.append([])
arr[0].append('aa1')
arr[0].append('aa2')
of
arr = []
arr.append(['aa1', 'aa2'])
Antwoord 2, Autoriteit 86%
Er zijn geen multidimensionale arrays als zodanig in Python, wat je hebt is een lijst met andere lijsten.
>>> arr = [[]]
>>> len(arr)
1
Wat u hebt gedaan, verklaart een lijst met een enkele lijst. Dus arr[0]
bevat een lijst, maar arr[1]
is niet gedefinieerd.
U kunt een lijst definiëren met twee lijsten als volgt:
arr = [[],[]]
Of om een langere lijst te maken die je zou kunnen gebruiken:
>>> arr = [[] for _ in range(5)]
>>> arr
[[], [], [], [], []]
Wat u niet moetdoen, is dit:
arr = [[]] * 3
Omdat dit dezelfde lijstop alle drie de plaatsen in de containerlijst plaatst:
>>> arr[0].append('test')
>>> arr
[['test'], ['test'], ['test']]
Antwoord 3, autoriteit 27%
Wat je hier gebruikt zijn geen arrays, maar lijsten (van lijsten).
Als u multidimensionale arrays in Python wilt, kunt u Numpy-arrays gebruiken. Je moet de vorm van tevoren weten.
Bijvoorbeeld:
import numpy as np
arr = np.empty((3, 2), dtype=object)
arr[0, 1] = 'abc'
Antwoord 4, autoriteit 6%
U probeert toe te voegen aan het tweede element in de array, maar het bestaat niet.
Maak het.
arr = [[]]
arr[0].append("aa1")
arr[0].append("aa2")
arr.append([])
arr[1].append("bb1")
arr[1].append("bb2")
arr[1].append("bb3")
Antwoord 5, autoriteit 4%
We kunnen als volgt dynamisch een multidimensionale array maken,
Maak 2 variabelen om x en y uit standaardinvoer te lezen:
print("Enter the value of x: ")
x=int(input())
print("Enter the value of y: ")
y=int(input())
Maak een array van lijsten met beginwaarden gevuld met 0 of iets anders met behulp van de volgende code
z=[[0 for row in range(0,x)] for col in range(0,y)]
creëert aantal rijen en kolommen voor de array van gegevens.
Data lezen van de standaard invoer:
for i in range(x):
for j in range(y):
z[i][j]=input()
Geef het Resultaat:
for i in range(x):
for j in range(y):
print(z[i][j],end=' ')
print("\n")
of een andere middel om de hierboven dynamisch gegenereerde array,
for row in z:
print(row)
Antwoord 6, Autoriteit 3%
Bij de bouw van multi-dimensionale lijsten in Python ik meestal iets wat lijkt op ThiefMaster’s oplossing, maar in plaats van het toevoegen van items te indexeren 0
, dan voegen te indexeren items 1
, etc. ik gebruik altijd index -1
die automatisch de index van het laatste item in de array.
d.w.z.
arr = []
arr.append([])
arr[-1].append("aa1")
arr[-1].append("aa2")
arr.append([])
arr[-1].append("bb1")
arr[-1].append("bb2")
arr[-1].append("bb3")
zal de 2D-array (in feite een lijst van lijsten) te produceren u zoekt.
Antwoord 7, Autoriteit 3%
U kunt eerst voegt elementen aan de geïnitialiseerde array en dan voor het gemak, kunt u deze omzetten in een numpy array.
import numpy as np
a = [] # declare null array
a.append(['aa1']) # append elements
a.append(['aa2'])
a.append(['aa3'])
print(a)
a_np = np.asarray(a) # convert to numpy array
print(a_np)
Antwoord 8
a = [[] for index in range(1, n)]
Antwoord 9
Voor compititve programmeren
1) Voor invoer de waarde in een 2D-array
row=input()
main_list=[]
for i in range(0,row):
temp_list=map(int,raw_input().split(" "))
main_list.append(temp_list)
2) voor het weergeven van 2D-array
for i in range(0,row):
for j in range(0,len(main_list[0]):
print main_list[i][j],
print
Antwoord 10
De bovenstaande methode werkte niet voor mij voor een voor lus, waar ik gegevens van een 2D-array naar een nieuwe array onder een wil overbrengen onder een als de voorwaarde. Deze methode zou werken
a_2d_list = [[1, 2], [3, 4]]
a_2d_list.append([5, 6])
print(a_2d_list)
OUTPUT - [[1, 2], [3, 4], [5, 6]]
Antwoord 11
x=3#rows
y=3#columns
a=[]#create an empty list first
for i in range(x):
a.append([0]*y)#And again append empty lists to original list
for j in range(y):
a[i][j]=input("Enter the value")
Antwoord 12
In mijn geval moest ik dit doen:
for index, user in enumerate(users):
table_body.append([])
table_body[index].append(user.user.id)
table_body[index].append(user.user.username)
Uitgang:
[[1, 'john'], [2, 'bill']]