我在2 2 # denotes row, column of the matrix
1 0 0 0 # all the elements of the matrix in a single line separated by a single space.
解决了一些问题,我遇到了一个特殊问题,其中输入在测试用例中提供,如下所示:
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace SomeProject.Models
{
public class User
{
[Key]
public int UserId { get; set; }
[Required]
public string Name { get; set; }
issue =>> [Index("UniqueEmail", 2, IsUnique = true)]
public string Email { get; set; }
}
}
我没有得到如何用这种方式给出的输入初始化我的2D数组。
P.S。我不能使用split,因为它会将所有元素拆分到一个数组中,我必须从中再次读取每个元素。我正在寻找更简单和pythonic的方式。
答案 0 :(得分:1)
您应该使用.split
。您还需要将拆分字符串项转换为int
。但是如果你想:
rows, cols = map(int, input('rows cols: ').split())
data = map(int, input('data: ').split())
mat = [*map(list, zip(*[data] * cols))]
print(rows, cols)
print(mat)
<强>演示强>
rows cols: 2 2
data: 1 2 3 4
2 2
[[1, 2], [3, 4]]
如果在mat = [*map(list, zip(*[data] * cols))]
上收到SyntaxError,请将其更改为
mat = list(map(list, zip(*[data] * cols)))
或者升级到更新的Python 3.;)
答案 1 :(得分:0)
在两个字符串上使用拆分后:
n_rows, n_cols = [int(x) for x in matrix_info_str.split(' ')]
split_str = matrix_str.split(' ')
我得到了:
matrix = [split_str[i : i + n_cols] for i in xrange(0, n_rows * n_cols, n_cols)]