gpt4 book ai didi

Python NET 初始化一个锯齿状数组

转载 作者:行者123 更新时间:2023-12-01 08:24:49 25 4
gpt4 key购买 nike

我想使用 pythonnet 包从 Python 初始化 .NET 锯齿状数组。对于一维数组我可以这样做:

import clr
from System import Array
a = Array[int]([1, 2, 3])

但是对于锯齿状数组我该如何做到这一点呢?所以我们假设我在 python 中有以下列表:

[[1, 2, 3], [4, 5, 6]]

在 C# 中我会这样做:

int[][] a = new int[][] { new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 }};

最佳答案

在 Python 中可以这样完成:

b = Array[Array[int]]([Array[int]([1,2,3]), Array[int]([4,5,6])])

或者如果您定义辅助函数:

def asnetarray(x, defaulttype):
if type(x) is list:
if any([type(xi) is list for xi in x]):
# Array of array
return asnetarray([asnetarray(xi, defaulttype) for xi in x], defaulttype)
elif x:
# Array
return Array[type(x[1])](x)
else:
# Empty array
return Array[defaulttype]([])
else:
# Single element
return Array[type(x)]([x])

那么这可以用作:

# int[][]
b = asnetarray([[1, 2], [3, 4]], int)
# int[][][]
c = asnetarray([[[1, 2], [3, 4]], [[5, 6], [7, 8]]], int)

关于Python NET 初始化一个锯齿状数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54340401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com