How to create multidimensional array in python 3

Question:

in PHP I do the following:

<?php
   $array = array();
   for($i=0;$i<5;$i++)
   {
      $array[$i]["id"] = $i;
      $array[$i]["result"]["text"] = "id ".$i;
   }
   echo json_encode($array);

and the result is:

[{"id":0,"result":{"text":"id 0"}},{"id":1,"result":{"text":"id 1"}},{"id":2,"result":{"text":"id 2"}},{"id":3,"result":{"text":"id 3"}},{"id":4,"result":{"text":"id 4"}}]

so in python how do i do it?

UPDATE

Thanks for helping me, my question is solved, and by the time I update here there are 3 answers and I found all 3 answers did what I wanted and I decided choose and do it this way

array = []
for i in range(0,5):
    array.append({"id":i,"result":{"text":f"id {i}"}})
#dict to json
import json
print(json.dumps(array))

Because for me, I find it the most concise

Asked By: HTL CO

||

Answers:

Would something like this work for you?

lyst = []
for i in range(5):
    lyst += [{"id": i, "result":{"text": "id " + str(i)}}]
print(lyst)

Output:

[{'id': 0, 'result': {'text': 'id 0'}}, {'id': 1, 'result': {'text': 'id 1'}}, {'id': 2, 'result': {'text': 'id 2'}}, {'id': 3, 'result': {'text': 'id 3'}}, {'id': 4, 'result': {'text': 'id 4'}}]
Answered By: Codeman

There are 2 ways:

1) first you could:

enumerate into a range(5) array and then assign the index i of the predifined array arr, to a dictionary, witch you will change the keys

arr = list(range(5))
for i,x in enumerate(range(5)):
    arr[i] = {}
    arr[i]["id"],arr[i]["result"]=i,{"text":f"id {i}"}
print(arr)

output:

[{'id': 0, 'result': {'text': 'id 0'}}, {'id': 1, 'result': {'text': 'id 1'}}, {'id': 2, 'result': {'text': 'id 2'}}, {'id': 3, 'result': {'text': 'id 3'}}, {'id': 4, 'result': {'text': 'id 4'}}]

2) second you could:

use dict and list comprehension to wrap into a expression:

  1. range:

you could use range(5) is raccomended

arr = [{"id":i,"result":{"text":f"id {i}"}} for i in range(5)]
print(arr)
  1. enumerate

you could also use enumerate instead (NOT RACCOMENDED)

arr = [{"id":i,"result":{"text":f"id {i}"}} for i,_ in enumerate(range(5))]
print(arr)

the output will be the same:

[{'id': 0, 'result': {'text': 'id 0'}}, {'id': 1, 'result': {'text': 'id 1'}}, {'id': 2, 'result': {'text': 'id 2'}}, {'id': 3, 'result': {'text': 'id 3'}}, {'id': 4, 'result': {'text': 'id 4'}}]
Answered By: XxJames07-
array = []
for i in range(0,5):
    array.append({"id":i,"result":{"text":f"id {i}"}})
print(array)

#to json
import json
print(json.dumps(array))

output

[{'id': 0, 'result': {'text': 'id 0'}}, {'id': 1, 'result': {'text': 'id 1'}}, {'id': 2, 'result': {'text': 'id 2'}}, {'id': 3, 'result': {'text': 'id 3'}}, {'id': 4, 'result': {'text': 'id 4'}}]

[{"id": 0, "result": {"text": "id 0"}}, {"id": 1, "result": {"text": "id 1"}}, {"id": 2, "result": {"text": "id 2"}}, {"id": 3, "result": {"text": "id 3"}}, {"id": 4, "result": {"text": "id 4"}}]
Answered By: eya46
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.