JuliaPy / JuliaPy/PyCall.jl

keep python nested list/array structure

Open
#142 8 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
1.5k
Forks
186
PR merge metrics
No merged PRs in 30d

Description

I was wondering is there any way to retain structure of python nested lists.

In Python - a nested list/array is defined:
e = [[1,2,3],[9,8,[3,2,1]]]

The standard PyCall import output in Julia looks like this:
2x3 Array{Any,2}:
1 2 3
9 8 Any[3,2,1]

Often conversion to multidimensional arrays is very convenient but sometimes I need a bit more explicit control, especially when I want to keep things in order. I'm looking basically for a 1:1 representation:

[1,2,3],[9,8,Any[3,2,1]]

Is there any way I can instruct Julia/PyCall not to do the conversion into multidimensional arrays?
So far I can prevent it by sticking to pyobject type, but then I'm not sure what is the right PyCall's conversion function.

@pyimport mymodule
c = [] # which initilalzes 1-dim Array
PyCall.py2array(c,mymodule.pymember("e"))

Thanks

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with PyCall.py2array and the @pyimport usage shown in the issue, then inspect how nested Python lists are converted into Julia arrays. Define the expected 1:1 nested-list representation and verify whether the existing conversion entry point can preserve it without forcing multidimensional array conversion.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia, python
Domain
tooling
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.