我想阅读linux命令编写的实际源代码.我已经获得了使用它们的一些经验,现在我认为是时候在更深层次上与我的机器进行交互了.
我在http://directory.fsf.org/wiki/GNU找到了一些命令.不幸的是,我无法找到像'ls'这样的基本命令,这在我看来很容易开始.
我究竟如何阅读像'ls'这样的简单shell命令的源代码?我在Ubuntu 12.04上运行
我试图了解我的嵌入式Linux应用程序的内存使用情况.该/proc/pid/maps实用程序/文件似乎是看到细节的好资源.不幸的是,我不理解所有列和条目.
/proc/pid/maps实用程序/文件是否有良好的资源/文档?
匿名inode 0条目是什么意思?这些似乎是一些较大的内存段.
我在python中有一个函数可以返回a bool或a list.有没有办法使用类型提示指定返回类型.
例如,这是正确的方法吗?
def foo(id) -> list or bool:
...
Run Code Online (Sandbox Code Playgroud) 我有一个Python列表,例如
names = ["Sam", "Peter", "James", "Julian", "Ann"]
Run Code Online (Sandbox Code Playgroud)
我想在没有正常"[]的单行中打印数组
names = ["Sam", "Peter", "James", "Julian", "Ann"]
print (names)
Run Code Online (Sandbox Code Playgroud)
将输出作为;
["Sam", "Peter", "James", "Julian", "Ann"]
Run Code Online (Sandbox Code Playgroud)
这不是我想要的格式,而是我希望它像这样;
Sam, Peter, James, Julian, Ann
Run Code Online (Sandbox Code Playgroud)
注意:它必须在一行中.
我刚读完R简介中的范围界定,对这项<<-任务非常好奇.
手册显示了一个(非常有趣)的例子<<-,我觉得我理解.我仍然缺少的是这可能有用的背景.
因此,我希望从您那里读到的是关于何时使用<<-可能有趣/有用的示例(或示例链接).使用它的危险可能是什么(它看起来容易松散),以及您可能想要分享的任何提示.
我试图text.translate()在Python 3.4中删除给定字符串中不需要的字符.
最小的代码是:
import sys
s = 'abcde12345@#@$#%$'
mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$')
print(s.translate(mapper))
Run Code Online (Sandbox Code Playgroud)
它按预期工作.但是,在Python 3.4和Python 3.5中执行相同的程序会产生很大的差异.
计算时间的代码是
python3 -m timeit -s "import sys;s = 'abcde12345@#@$#%$'*1000 ; mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$'); " "s.translate(mapper)"
Run Code Online (Sandbox Code Playgroud)
Python 3.4程序需要1.3毫秒,而Python 3.5中的相同程序只需要26.4μs.
与Python 3.4相比,Python 3.5有哪些改进使其更快?
我正在尝试编写一个函数来接受data.frame(x)和a column.该函数对x执行一些计算,然后返回另一个data.frame.我坚持使用最佳实践方法将列名传递给函数.
两个最小的例子fun1和fun2下面产生所需的结果,能够执行操作x$column,使用max(),例如,然而,两者都依赖于看似(至少对我而言)不优雅
substitute()可能eval() fun1 <- function(x, column){
do.call("max", list(substitute(x[a], list(a = column))))
}
fun2 <- function(x, column){
max(eval((substitute(x[a], list(a = column)))))
}
df <- data.frame(B = rnorm(10))
fun1(df, "B")
fun2(df, "B")
Run Code Online (Sandbox Code Playgroud)
我希望能够将该功能称为fun(df, B)例如.我考虑但尚未尝试的其他选项:
column为列号的整数.我认为这会避免substitute().理想情况下,该功能可以接受.with(x, get(column))但是,即使它有效,我认为这仍然需要 substitute formula()和match.call(),我都没有多少经验.子问题:do.call()首选eval()?
我正在试图弄清楚如何组织许多(大约50多个)maven2项目,以便他们可以部署到一个中央nexus存储库.在使用mvn deploy目标时,需要在distributionManagement标记中指定目标,如下所示:
<distributionManagement>
<repository>
<id>nexus-site</id>
<url>http://central_nexus/server</url>
</repository>
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)
现在,我不希望每个pom.xml(50+以上)一遍又一遍地包含这个块.我的第一个虽然是settings.xml文件,但似乎不可能(按设计)在那里定义它.那么,第一个问题是,为什么会这样呢?如果有可能我可以在maven2发行版的settings.xml中指定它,它可以分发给所有开发人员.
我发现唯一可行的解决方案是创建一个组织范围的master-pom项目,它确实包含这些设置,并使所有其他pom.xml依赖于这个master-pom via <parent>标签.但这在多模块构建中看起来很奇怪:
- master configuration POM (pm)
- Project 1 parent pom (p1 with module 1 and module 2 as modules)
- Project 1 module pom (with pm as parent)
- Project 2 module pom (with pm as parent)
Run Code Online (Sandbox Code Playgroud)
通常我在所有文档中都读到模块poms应该使用父pom,而不是一些不同的pom.但在阅读了关于继承诉聚合的maven网站之后,我们写道它确实是可能的.
我发现的一个问题是maven网站生成,这似乎有这个设置的问题(模块如果没有直接的反向引用就无法正确链接)
那么,这是一种有效的方法吗?问题的任何其他更明显,更简单的解决方案?
这是我的代码:
{names[i]:d.values()[i] for i in range(len(names))}
Run Code Online (Sandbox Code Playgroud)
这在使用python 2.7.3时完全正常; 但是,当我使用python 3.2.3时,我收到一个错误说明'dict_values' object does not support indexing.如何修改代码以使其与3.2.3兼容?
python ×4
python-3.x ×3
linux ×2
python-3.5 ×2
r ×2
r-faq ×2
command ×1
dataframe ×1
deployment ×1
embedded ×1
java ×1
javascript ×1
jquery ×1
json ×1
list ×1
maven ×1
maven-2 ×1
nexus ×1
return-type ×1
scoping ×1
string ×1
type-hinting ×1
xml ×1