我正在寻找一些帮助,以了解Python中有关字典的最佳实践.
我有一个例子如下:
def convert_to_celsius(temp, source):
conversion_dict = {
'kelvin': temp - 273.15,
'romer': (temp - 7.5) * 40 / 21
}
return conversion_dict[source]
def convert_to_celsius_lambda(temp, source):
conversion_dict = {
'kelvin': lambda x: x - 273.15,
'romer': lambda x: (x - 7.5) * 40 / 21
}
return conversion_dict[source](temp)
Run Code Online (Sandbox Code Playgroud)
显然,这两个功能实现了相同的目标,但是通过不同的手段.有人能帮助我理解两者之间的细微差别,以及关于这个的"最佳"方式是什么?
我已设法使用ggplot2创建堆积条形图,但其中一个数据值为0.有没有办法显示除0以外的所有其他数据值?
dat <- data.frame(matrix(NA, ncol=3, nrow=21))
names(dat) <- c("Var1", "Var2", "Freq")
dat$Var1 <- c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7)
dat$Var2 <- rep(letters[1:7],3)
dat$Freq <- c(3,11,1,5,9,4,1,5,4,0,7,2,5,2,3,11,11,15,5,10,10)
dat <- ddply(dat, .(Var1), transform, pos = cumsum(Freq)-0.5*Freq) ## pos is to place data values at the mid point.
ggplot(dat, aes(x=factor(Var1), y=Freq)) +
geom_bar(stat="identity", aes(fill = Var2)) +
geom_text(aes(label=Freq, y = pos), size=3)
Run Code Online (Sandbox Code Playgroud)
编辑:提供可重现的数据.
我有一个python脚本,使用win32com和Outlook发送电子邮件.当我通过解释器运行它或双击脚本时,脚本运行顺利.但是,当我通过任务计划程序运行它时,我收到以下消息:
"出了点问题.我们无法启动您的程序.请尝试重新启动它.如果无法启动,请尝试从"控制面板"中的"程序和功能"修复Office.
我正在使用Office 365和Python 2.6.我在尝试杀死Outlook进程后尝试通过调度程序运行脚本,但我遇到了同样的问题.
使用 win32com.client 包,我可以通过 Python 使用 Outlook 发送 HTML 电子邮件。但是,我很难弄清楚如何将电子邮件标记为“高优先级”或“高重要性”。
这是我用来成功发送电子邮件的代码(没有优先级标记):
RTFTEMPLATE = """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
08.00.0681.000">
<TITLE>%s</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT =
FACE="Times New Roman">
%s
</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>
<br>
%s
</BODY>
</HTML>"""
Format = { 'UNSPECIFIED' : 0, 'PLAIN' : 1, 'HTML' : 2, 'RTF' : 3}
profile = "Outlook"
#session = win32com.client.Dispatch("Mapi.Session")
outlook = …Run Code Online (Sandbox Code Playgroud) 当我使用FireFox的'Inspect Element'功能时,HTML源文件中没有显示div标签.换句话说,我需要的信息是JavaScript代码,但不是HTML页面源代码.有没有办法将这些信息读入R?
我发现了一个类似的问题:如何使用R查看网页源代码?
使用建议的代码:
mz <- socketConnection("localhost", "4242")
writeLines("var w=window.open(\"https://google.com\")\n",mz)
out <- readLines(mz) #empty the buffer
writeLines("w.document.getElementsByTagName('html')[0].innerHTML\n", mz)
out <- readLines(mz)
str(out)
Run Code Online (Sandbox Code Playgroud)
但它为我返回chr(0).
有人可以帮助解决上述R代码,或建议替代解决方案吗?
谢谢.
已解决:上面的代码以前没有工作,但是由于没有足够的时间来加载页面.可能不是解决这个问题的最有效方法,但仍然是一个解决方案.感谢大家