![](/img/trans.png)
[英]Python Multidimensional Array - Adding additional values to beginning and end of each row
[英]Create a multidimensional array in python without additional library?
def create_nd_array(dimensions, value):
"""Function will create a N-dimensional array.
A N-dimensional array will be filled by the value being passed to the function.
Parameter:
Input:
value(int or bool or string): Newly formed N-dimensional array will contain this particular value.
dimensions(tuple): tuple indicating dimensions of newly formed N-dimensional array.
Output:
array_nd(N-dimensional array): a N-dimensional array of values."""
dimension_length = len(dimensions)
array_nd = value
for index in range(dimension_length - 1, -1, -1):
dimension = dimensions[index]
array_nd = [array_nd for _ in range(dimension)].copy()
return array_nd
我已经写了上面的代码。 这将创建一个带有别名的 N 维数组。当我改变列表时,它会改变所有内容。 例如别名问题<--点击这里
您无需copy
列表,而是可以将 append 到结果列表; 并且代替range(dimension_length - 1, -1, -1)
,您可以直接获取维度而不使用它们的索引,通过 puttng dimensions[::-1]
像这样
def create_nd_array(dimensions, value):
array_nd = []
for dim in dimensions[::-1]:
array_nd.append([value for _ in range(dim)])
return array_nd
print(create_nd_array((2,4,2), 0))
这可以进一步压缩为列表推导式
def create_nd_array(dimensions, value):
array_nd = [[value for _ in range(dim)] for dim in dimensions[::-1]]
return array_nd
print(create_nd_array((2,4,2), 0))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.