在 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)
谢谢
我需要在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)