我有一个Python列表,其中包含多个值,一些是字符串,一些是元组。
data = [[0,1,2],["a", "b", "c"]]
我想知道是否有一种方法可以轻松地将任何长度列表转换为2D数组而不使用Numpy。我正在使用System.Array,因为这是所需的格式。 我知道我可以创建一个新的Array实例,然后使用for循环将列表中的所有数据写入其中。我只是好奇,如果有一个很好的Pythonic方式做到这一点。
x = len(data)
y = len(data[0])
arr = Array.CreateInstance(object, x, y)
然后我可以遍历我的数据并设置arr值吗?
arr = Array.CreateInstance(object, x, y)
for i in range(0, len(data),1):
for j in range(0,len(data[0]), 1):
arr.SetValue(data[i][j], i,j)
如果可能,我想避免像这样循环。谢谢,
聚苯乙烯。这适用于Excel Interop,我可以通过将其设置为等于数组来在Excel中设置整个范围。这就是我想将列表转换为数组的原因。谢谢,
我想知道的是,Array是一个类型化的对象,是否可以将其组成部分设置为字符串或整数?我想我可能只会被限制在一个人身上。对?如果是这样,我可以使用任何其他类型的数据吗? 将它设置为Arrayobject确保我可以在其中组合str / int吗?
另外我虽然可以使用它:
arr= Array[Array[object]](map(object, data))
但它会引发错误。有任何想法吗?
答案 0 :(得分:0)
您可以使用Array.CreateInstance创建单个或多维数组。由于Array.CreateInstance方法接受" Type"你指定任何你想要的类型。例如:
// gives you an array of string
myArrayOfString = Array.CreateInstance(String, 3)
// gives you an array of integer
myArrayOfInteger = Array.CreateInstance(Int32, 3)
// gives you a multidimensional array of strings and integer
myArrayOfStringAndInteger = [myArrayOfString, myArrayOfInteger]
希望这会有所帮助。另请参阅msdn网站,了解如何使用Array.CreateInstance。