我创建了一个图形并用几个子图填充它.
随着新数据的到来,我想在给定的子图上绘制它.
如何在子图之间切换,这样我每次都不必创建新的子图对象?
例:
from matplotlib.pyplot import figure,
figure()
subplot(2,1,1)
subplot(2,1,2)
# now go back and plot something on subplot 1 ...?
Run Code Online (Sandbox Code Playgroud) 我正在为Flask和SQLAlchemy构建一个管理员,我想将不同输入的HTML传递给我的视图render_template.模板框架似乎自动转义html,因此所有<"'>都转换为html实体.如何禁用它以便HTML呈现正确?
例:
我有以下JSON对象.
{"currentVersion" : "10.0",
"folders" : [],
"services" : [
{"name" : "nyc", "type" : "MapServer"},
{"name" : "philly", "type" : "MapServer"}
]
}
Run Code Online (Sandbox Code Playgroud)
我希望能够根据name属性的值从services数组中删除一个或多个项目.例如,我想搜索name ="nyc"并从数组中删除以下对象.
{"name" : "nyc", "type" : "MapServer"}
Run Code Online (Sandbox Code Playgroud)
最终结果是一个如下所示的对象:
{"currentVersion" : "10.0",
"folders" : [],
"services" : [
{"name" : "philly", "type" : "MapServer"}
]
}
Run Code Online (Sandbox Code Playgroud)
我已经能够相当容易地创建新的JSON对象,我可以阅读现有的JSON对象.但是,我很难确定修改现有JSON对象的最佳方法.特别是因为它涉及查询JSON对象中的特定对象.
我发现的一个方法(特定于此示例)是重建我想要修改的JSON部分并根据需要替换标记.但是,我必须认为有更好的方法.此代码如下所示.
string json = @"{""currentVersion"" : ""10.0"",
""folders"" : [],
""services"" : [
{""name"" : ""nyc"", ""type"" : ""MapServer""},
{""name"" : ""philly"", ""type"" : ""MapServer""}
]
}";
string[] …Run Code Online (Sandbox Code Playgroud) 我正在做一些简单的事情,所以希望这个问题很容易回答.我正在使用gcc进行编译.推动效果非常好.问题是流行音乐.每当我编译并运行它时,我都会遇到分段错误.
以下是pop和push功能:
int push(stack *stk, int data)
{
stk->head = makeNode(data, stk->head);
stk->length += 1;
return data;
}
int pop(stack *stk)
{
//Returns popped item
//Returns -1 if stack length is zero
if (stk->length < 1)
{
printf("No items to pop.");
return -1;
}
int data = stk->head->value;
struct node *toBeFreed = stk->head;
stk->head = stk->head->ptr;
free(toBeFreed);
stk->length -= 1;
return data;
}
Run Code Online (Sandbox Code Playgroud)
老实说,我不知道问题是什么,因为代码是相似的.我在push函数中重新分配堆栈中的head变量,但它会导致pop函数出错.对数据的分配也给了我一个seg错误.除了返回和堆栈长度赋值语句之外,几乎所有内容都会给出分段错误.你们任何人都可以帮我解决这个问题吗?造成这些seg故障的原因是什么?
这是整个计划:
#include <stdio.h>
#include <stdlib.h>
struct node
{
int value;
struct node *ptr;
};
struct node …Run Code Online (Sandbox Code Playgroud) 考虑:
args = ['-sdfkj']
print args
for arg in args:
print arg.replace("-", '')
arg = arg.replace("-", '')
print args
Run Code Online (Sandbox Code Playgroud)
这会产生:
['-sdfkj']
sdfkj
['-sdfkj']
Run Code Online (Sandbox Code Playgroud)
在我预期的地方['sdfkj'].
是arg在回路中的副本?
它表现得好像是一个副本(或者也许是一个不可变的东西,但是我希望会抛出一个错误...)
注意:我可以通过列表理解获得正确的行为.我很好奇上述行为的原因.
我在我的nant脚本(Team City)中有一个msdeploy正在工作,除了它正在复制一些我不想复制的文件夹.什么命令会跳过这些目录?我试过了:
<arg value="-skip:objectName=dirPath,absolutePath=C:\Websites\slingshotportal\Build scripts"' />
and
<arg value='-skip:objectName=contentPath,absolutePath="C:\\Websites\\slingshotportal\\Build scripts"' />
Run Code Online (Sandbox Code Playgroud)
这些命令似乎都不起作用,Build脚本目录仍然从源目录复制到目标目录?msbuild执行同步,我将-source和-dest指定为contentPath.
在推送到我的远程Git仓库并完全放弃SVN之前,将git-svn init/git-svn提取到本地Git分支/标记之后,使远程分支/标记存在的正确方法是什么?
我有:
git svn init 将svn-remote "svn".git/config文件的部分更新为以下内容:
url = file:///Users/Developers/git_transition/svn_repo
fetch = cascade/trunk:refs/remotes/svn/trunk
branches = cascade/branches/{5.0GA_CLEANUP,drag-n-drop-def-builder,help-text,hib-annotations,hibernate-annotations,image-editor,ldapconfig,liquibase,move-rename-prototype,progress-bar,progress-bar2,quartz-upgrade,recyclebin,rendering_metrics,shuttle_upgrade,spring3,web-services-no-nuller}:refs/remotes/svn/*
branches = cascade/branches/{6.x,5.x,4.x,3.x,archive}/*:refs/remotes/svn/*
tags = cascade/tags/{3.7.x,4.x,5.x,6.x,old-releases}/*:refs/remotes/svn/tags/*
Run Code Online (Sandbox Code Playgroud)跑 git svn fetch
是否git-svn clone做一些超出的init /取,轮流这些分支/标签为当地的呢?
我尝试了关于Pro Git的建议,但除了空的6.x,5.x,4.x,3.x,标签和存档目录之外,.git/refs/remotes/svn /目录中没有任何内容.我确实验证了远程分支在那里git branch -r.
有人建议我需要系统地检查所有远程分支机构作为本地分支机构:git checkout -b <local_branch_name> <svn_remote_branch_name>但我没有得到任何确定的答案.
我已经能够使用该脚本来CONVER标签:
git for-each-ref --format="%(refname)" refs/remotes/svn/tags/6.x |
grep -v @ | while read tag; do GIT_COMMITTER_DATE="$(git log -1
--pretty=format:"%ad" "$tag")" GIT_COMMITTER_EMAIL="$(git log -1
--pretty=format:"%ce" "$tag")" GIT_COMMITTER_NAME="$(git …Run Code Online (Sandbox Code Playgroud) 我正在寻找最有效/直接的方式来做这个简单的C/C++操作:
void ReadData(FILE *f, uint16 *buf, int startsamp, int nsamps)
{
fseek(f, startsamp*sizeof(uint16), SEEK_SET);
fread(buf, sizeof(uint16), nsamps, f);
}
Run Code Online (Sandbox Code Playgroud)
在C#/.NET中.(为了清晰起见,我忽略了返回值 - 生产代码会检查它们.)具体来说,我需要读取许多(可能是10到100的数百万)2字节(16位)"ushort"整数数据样本(固定格式) ,不需要解析)以二进制形式存储在磁盘文件中.关于C方式的好处是它将样本直接读入"uint16*"缓冲区,没有CPU参与,也没有复制.是的,它可能是"不安全的",因为它使用void*指针指向未知大小的缓冲区,但似乎应该有一个"安全"的.NET替代品.
在C#中实现这一目标的最佳方法是什么?我环顾四周,发现了一些提示(使用FieldOffset的"工会",使用指针编组的"不安全"代码,编组),但似乎没有一个适用于这种情况,没有使用某种复制/转换.我想避免使用BinaryReader.ReadUInt16(),因为这非常慢并且CPU密集.在我的机器上,带有ReadUInt16()的for()循环与使用单个Read()直接读入byte []数组之间的速度差异约为25倍.使用非阻塞I/O(在等待磁盘I/O时重叠"有用"处理),该比率可能更高.
理想情况下,我想简单地"伪装"一个ushort []数组作为byte []数组,这样我就可以用Read()直接填充它,或者以某种方式让Read()直接填充ushort []数组:
// DOES NOT WORK!!
public void GetData(FileStream f, ushort [] buf, int startsamp, int nsamps)
{
f.Position = startsamp*sizeof(ushort);
f.Read(buf, 0, nsamps);
}
Run Code Online (Sandbox Code Playgroud)
但是没有Read()方法接受一个ushort []数组,只有一个byte []数组.
这可以直接在C#中完成,还是需要使用非托管代码或第三方库,还是必须采用CPU密集型逐个样本转换?虽然"安全"是首选,但我可以使用"不安全"的代码,或者使用Marshal的一些技巧,我还没想到它.
谢谢你的指导!
[UPDATE]
我想按照dtb的建议添加一些代码,因为似乎有很少的ReadArray实例.这是一个非常简单的,没有显示错误检查.
public void ReadMap(string fname, short [] data, int startsamp, int nsamps)
{
var mmf = MemoryMappedFile.CreateFromFile(fname);
var mmacc = mmf.CreateViewAccessor();
mmacc.ReadArray(startsamp*sizeof(short), …Run Code Online (Sandbox Code Playgroud) Java 5库中是否已经提供了一个方法来将元素添加到字母中List?
换句话说,假设我有List<String>三个元素{"apple","cat","tree"},我想添加String"香蕉",同时List按字母顺序排列; 是否有一种简单的方法可以简单地将它添加到List,以便List现在有四个元素{"apple","banana","cat","tree"}?
将代码从Delphi 7转换到2010时,我遇到了一个奇怪的问题.它与记录有关.下面定义的记录,在D7中的大小为432字节,在D2009(和2010年)中为496.我知道,一个简单的解决方案是使其成为打包记录,然后所有版本都达到426字节......但是,我们将数据存储在我们流式传输记录的位置,现在我们正在尝试使用更新的语言读取这些流.
TToTry = Record
a,b,c,d : Extended;
e,f,g,h : Extended;
i : String[15];
j,k,l,m,n,o,p,q,r,s,t : Array[1..3] of Extended; End;
Run Code Online (Sandbox Code Playgroud)
在调查这个问题时,我创建了另一条记录,无论出于何种原因,大小都相同?记录较小,但它具有相同的数据类型.但它在所有版本的语言中都有相同的大小.
TMyRecord = Record
Ext1 : Extended;
Ext2 : Extended;
Ext3 : Extended;
Ext4 : Extended;
Ext5 : Extended;
Ext6 : Extended;
Int1 : Integer;
Int2 : Integer;
char1 : AnsiChar;
char2 : AnsiChar;
MyString : String[15];
Arr1 : Array[1..3] of Extended;
Arr2 : Array[1..3] of Extended; end;
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么一个记录如此不同,另一个是相同的?与Delphi中的字节边界对齐有关.但是从一个版本到下一个版本的变化如此之大?