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
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'}}]
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:
- range:
you could use range(5)
is raccomended
arr = [{"id":i,"result":{"text":f"id {i}"}} for i in range(5)]
print(arr)
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'}}]
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"}}]
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
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'}}]
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:
- range:
you could use range(5)
is raccomended
arr = [{"id":i,"result":{"text":f"id {i}"}} for i in range(5)]
print(arr)
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'}}]
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"}}]