小编Lil*_*ily的帖子

为字典预先分配内存?

在 python 3.4 中,我试图在一个大循环中填充一个字典,为其分配 30000 * 1000 个双数。我想预先为字典分配内存,这样我就可以减少每次迭代中分配内存带来的性能开销。

另外,如何检查Python中允许分配给字典(和列表)的内存大小限制?例如,如果只允许50MB,我会尽量避免溢出。这可能取决于操作系统和其他系统,但我想知道如何最大限度地提高性能。

我可以用

ll = [None] * 1000
Run Code Online (Sandbox Code Playgroud)

为列表分配内存。

字典有类似的方法吗?

d = {None} * 1000 ? 
or 
d = {None: None} * 1000 ? 
Run Code Online (Sandbox Code Playgroud)

谢谢

python dictionary python-3.x

4
推荐指数
1
解决办法
7529
查看次数

在C#VS2013中的System.Data.DataTable中将列定义为可为空

我需要在C#VS2013中定义一个System.Data.DataTable.

在一列中,它可以是int或null.

但我得到了:

  DataSet does not support System.Nullable<>.
Run Code Online (Sandbox Code Playgroud)

对于定义:

  public DataTable myDataTable
  myDataTable = new DataTable("myName");
  myDataTable.Columns.Add("ID", typeof(Int32)); 
  myDataTable.Columns.Add("value1", typeof(Int32?)); // run time error 
  myDataTable.Columns.Add("value2", typeof(Int32?)); 
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?解决?

使列Dullable后,

 DataColumn dc = myDataTable.Columns.Add("value1", typeof(Int32));
 dc.AllowDBNull = true;
Run Code Online (Sandbox Code Playgroud)

当我查询它时,我得到了

  "Sequence contains no elements". 
Run Code Online (Sandbox Code Playgroud)

请参阅更新.

UPDATE

    int? result = (from r in myDataTable.AsEnumerable()
                  where r.Field<Int32>("ID") == givenID
                    && r.Field<Int32?>("value1") == givenValue1
                    select r.Field<Int32>("value2")).First();
Run Code Online (Sandbox Code Playgroud)

.net c# visual-studio

3
推荐指数
2
解决办法
7255
查看次数

标签 统计

.net ×1

c# ×1

dictionary ×1

python ×1

python-3.x ×1

visual-studio ×1