我有一个runif用来计算某个值的函数,所以每次调用它时,结果都会略有不同.我想计算几次调用函数的结果的平均值.
为此,使用重复函数调用的结果创建向量将会很棒
是否有一种简单的惯用方法来创建重复函数调用的向量?我试试
rep(my_function_call(), 10)
Run Code Online (Sandbox Code Playgroud)
但它只调用一次函数并重复结果10次.我想要评估10次的函数,以及结果的向量.
我创建了一个PyGTK应用程序,当用户按下按钮时会显示一个Dialog.该对话框在我的__init__方法中加载:
builder = gtk.Builder()
builder.add_from_file("filename")
builder.connect_signals(self)
self.myDialog = builder.get_object("dialog_name")
Run Code Online (Sandbox Code Playgroud)
在事件处理程序中,对话框随命令一起显示self.myDialog.run(),但这只能运行一次,因为在run()对话框被自动销毁之后.如果我再次单击该按钮,应用程序将崩溃.
我读到有一种方法可以使用show()而不是run()对话框没有被销毁的地方,但我觉得这对我来说不是正确的方法因为我希望对话框能够以模态方式运行并且仅在用户之后将控制权返回给代码关闭了它.
有没有一种简单的run()方法可以使用gtkbuilder 使用该方法重复显示对话框?我尝试使用gtkbuilder重新加载整个对话框,但这似乎没有用,对话框缺少所有子元素(我更喜欢在程序开始时只使用构建器一次).
[解决方案](编辑)
正如下面的答案所指出的那样,使用hide()诀窍.我首先想到你仍然需要捕捉"删除事件",但这实际上没有必要.一个有效的简单示例是:
import pygtk
import gtk
class DialogTest:
def rundialog(self, widget, data=None):
self.dia.show_all()
result = self.dia.run()
self.dia.hide()
def destroy(self, widget, data=None):
gtk.main_quit()
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.connect("destroy", self.destroy)
self.dia = gtk.Dialog('TEST DIALOG', self.window,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT)
self.dia.vbox.pack_start(gtk.Label('This is just a Test'))
self.button = gtk.Button("Run Dialog")
self.button.connect("clicked", self.rundialog, None)
self.window.add(self.button)
self.button.show()
self.window.show() …Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的列表:
['a', 'b', 'c', '', '', '']
这是解析'脏'csv文件的结果.我现在想要摆脱右边的空列.我不能只使用计数,因为长度是可变的.我也不能只使用简单的过滤,因为还有一些行如下所示:
['a1', '', 'c1', '', '']
所以我必须保留不正确的空列.这是否有惯用的方法?我希望能在"反向列表"中应用类似"removeWhile"的功能.
到目前为止,我提出的最好的是以下内容:
def filterRow(row):
row.reverse()
blanks = 0
for x in row:
if x == '':
blanks += 1
else:
break
row.reverse()
return row[0:-blanks]
Run Code Online (Sandbox Code Playgroud) 我试图在haskell中进行小端转换,以便我可以将Word16转换为两个Word8(例如258 = 1*256 + 2,因此结果应为[2,1]).然后我将结果打包成ByteString.
我为此创建了以下代码:
import Data.Word
import Data.Bits
getByte b num = shift (relevantBits b num) (shiftNum b)
where bitMask b = sum $ map (2^) [8*b-8 .. 8*b-1]
relevantBits b num = num .&. bitMask b
shiftNum b = 8-8*b
encodeWord16 x = [getByte 1 x, getByte 2 x]
input :: Word16
input = 355
output :: [Word8]
output = encodeWord16 input
Run Code Online (Sandbox Code Playgroud)
该函数从数字中getByte获取字节b数num.该函数encodeWord16使用此辅助函数执行小端转换.
但是这不能编译,我得到错误:
Couldn't match expected type `Word8' …Run Code Online (Sandbox Code Playgroud) 我想让zombie.js激活一个使用javascript的链接.我正在测试它的页面是:
<html>
<body>
<div id="test123">
START_TEXT
</div>
<a href="javascript:go()">GO</a><br/>
<script type="text/javascript">
go = function() {
var el = document.getElementById("test123");
el.innerHTML = "CHANGED";
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我使用的脚本是:
var zombie = require("zombie");
var browser = new zombie.Browser;
browser.visit( "http://localhost:8000/testpage.html",
function() {
browser.clickLink("GO", function(e, browser, status) {
var temp = browser.text("div#test123");
console.log("content:", temp);
});
});
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot load resource: javascript:go()
at History._resource (/home/julian/temp/node_modules/zombie/lib/zombie/history.coffee:75:15)
at History._pageChanged (/home/julian/temp/node_modules/zombie/lib/zombie/history.coffee:60:21)
at History._assign …Run Code Online (Sandbox Code Playgroud)