lodash让我检查基本数据类型的成员资格includes:
_.includes([1, 2, 3], 2)
> true
Run Code Online (Sandbox Code Playgroud)
但以下不起作用:
_.includes([{"a": 1}, {"b": 2}], {"b": 2})
> false
Run Code Online (Sandbox Code Playgroud)
这让我感到困惑,因为以下搜索集合的方法似乎做得很好:
_.where([{"a": 1}, {"b": 2}], {"b": 2})
> {"b": 2}
_.find([{"a": 1}, {"b": 2}], {"b": 2})
> {"b": 2}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如何检查集合中对象的成员资格includes?
编辑:问题最初是针对lodash版本2.4.1,更新为lodash 4.0.0
我有一个2D列表,如下所示:
table = [['donkey', '2', '1', '0'], ['goat', '5', '3', '2']]
Run Code Online (Sandbox Code Playgroud)
我想将最后三个元素更改为整数,但下面的代码感觉非常难看:
for row in table:
for i in range(len(row)-1):
row[i+1] = int(row[i+1])
Run Code Online (Sandbox Code Playgroud)
但我宁愿有一些看起来像:
for row in table:
for col in row[1:]:
col = int(col)
Run Code Online (Sandbox Code Playgroud)
我认为应该有一种方法来编写上面的代码,但是切片创建了一个与原始代码分开的迭代器/新列表,因此引用不会延续.
有没有办法获得更多的Pythonic解决方案?
我想将许多文件视为一个文件.什么是正确的pythonic方式采用[filenames] => [文件对象] => [行]与生成器/不读取整个文件到内存?
我们都知道打开文件的正确方法:
with open("auth.log", "rb") as f:
print sum(f.readlines())
Run Code Online (Sandbox Code Playgroud)
我们知道将几个迭代器/生成器链接到一个长迭代器的正确方法:
>>> list(itertools.chain(range(3), range(3)))
[0, 1, 2, 0, 1, 2]
Run Code Online (Sandbox Code Playgroud)
但是如何将多个文件链接在一起并保留上下文管理器?
with open("auth.log", "rb") as f0:
with open("auth.log.1", "rb") as f1:
for line in itertools.chain(f0, f1):
do_stuff_with(line)
# f1 is now closed
# f0 is now closed
# gross
Run Code Online (Sandbox Code Playgroud)
我可以忽略上下文管理器并执行类似的操作,但感觉不对:
files = itertools.chain(*(open(f, "rb") for f in file_names))
for line in files:
do_stuff_with(line)
Run Code Online (Sandbox Code Playgroud)
或者这是Async IO-PEP 3156的用途,我只需要等待优雅的语法?
在Haskell中,您可以使用$运算符来清理代码,从而无需使用parens.
榆树是否支持这种运算符,或类似的东西?
我可以自己定义,但我希望这是内置的东西.
以下是它的工作原理:
import Html
import List exposing (map, foldr)
datas = [("a", 1), ("b", 2), ("c", 3)]
{--}
($) : (a -> b) -> (a -> b)
($) a b = a b
infixr 0 $
--}
main =
{-- replace all these parens
Html.text (toString (foldr (++) "" (map fst datas)))
--}
Html.text $ toString $ foldr (++) "" $ map fst datas
Run Code Online (Sandbox Code Playgroud) 我正在开展一个项目,将问题攻击者链接到我们的源控制系统.
我发现您可以在svn Web浏览器中查找特定的修订版本:
https://svn-repo/!svn/bc/100/
要么
https://svn-repo/?p=100
要么
https://svn-repo/?r=100
但是这会向您显示该修订版的整个存储库结构.最终目标是能够创建指向浏览器可以单击的URL的链接以查看修订所做的更改.这可能吗?我似乎找不到任何东西.
让我们说你在终端,目前坐在git repo的根源.
如果你已经安装了GitPython,你可以这样做以获得最后一次提交的提交,或者更确切地说,是HEAD指向的提交:
>>> import git
>>> r = git.Repo('.')
>>> c = r.head.commit
>>> c
<git.Commit "62e71e8210d0d0275b1f5845bf3033a7bfa3ed73">
>>> c.message
u'old message'
>>> c.message = "new message"
>>> c.message
'new message'
Run Code Online (Sandbox Code Playgroud)
但是如果退出python并进入git log此处,您将看到提交消息保持不变.如何编辑此库的提交?
我正在自学CSS和HTML,而且我遇到了一些看似错误的东西 - 这对我如何理解HTML和CSS很有挑战性.我已经找到了解决这个bug的方法,但是我希望有人可以告诉我修复工作的原因,以及是否有一些建议可以更容易地处理CSS的不一致性.下面我详细介绍了问题及其解决方案.
问题:我有一些项目要嵌套在页面上的几个框中.我已经改变了CSS以引起注意特定的问题区域:红色和绿色框应该夹在黑色和黄色线之间.
红色和绿色框设置为浮动到页面的右侧和左侧.它们的容器不会膨胀以包围它们,并且黑色和黄色线条相互接触.在我的自定义CSS之前应用魔法CSS之后,两条线按预期包围红色/绿色框
这是我的文件:template.html
<html>
<head>
<!-- uncomment the line below to enable the fix -->
<!--<link rel="stylesheet" href="css/resettemp.css" type="text/css" > -->
<link rel="stylesheet" href="css/template.css" type="text/css" >
</head>
<body>
<section class="content">
<header id="contact">
<div id="name">Name</div>
<div id="address">
<div>Home Address</div>
</div>
<div id="contact-details">
<div><strong>Phone Number:</strong>5555 </div>
</div>
</header>
This text should be under everything else.
</section>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
template.css:
header#contact
{
display: block;
font-size: 1em;
border-bottom: 5px #ff0 dashed;
}
header#contact
#name
{
display:block;
text-align: right;
font-size: 2em;
border-bottom: …Run Code Online (Sandbox Code Playgroud) 我正在尝试从JS移植一个库,我已经找到了一个可以接受字符串或字符串列表的函数.如果给定一个字符串,它会将其拆分为一个字符串列表,然后继续,就好像它首先被传递一样.
我可以通过定义自己的类型来做到这一点,但它会使API变得丑陋,并且需要为数据添加自定义类型前缀.
这是我得到的:
type DocumentBody = Raw String | Words List String
tokenize: DocumentBody -> List String
tokenize s =
case s of
Raw str_body -> String.split " " str_body |> (List.map String.toLower)
Words list_body -> List.map String.toLower list_body
-- Tests
tests =
suite "Tokenizer"
[ test "simple" <| assertEqual ["this", "is", "a", "simple", "string"]
<| tokenize (Raw "this is a simple string")
, test "downcasing tokens: string" <| assertEqual ["foo", "bar"]
<| tokenize (Raw "FOO BAR")
, test "downcasing …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个Chrome扩展程序,它只是将一个CSS文件添加到页面的css定义的末尾.
Google的文档说我可以使用该函数chrome.tabs.insertCSS()将css添加到页面,但是从content_script包含的javascript文件运行它不会做任何事情.
我正在尝试两种不同的方法,如Google网站上记录的那样.我有一个alert()声明告诉我我在剧本中的位置,但它从未进入决赛alert.这让我觉得我的脚本可能会在中间的某个地方崩溃.
这是我的源文件:
manifest.json
{
"name": "Custom CSS to GOOGLE",
"version": "1.0",
"description": "The first extension that I made.",
"content_scripts": [
{
"matches": ["http://*/*"],
//"js": ["style_injector.js"],
"js": ["inject.js"],
"css": ["newstyle.css"]
}
],
"permissions": [
"tabs", "http://*/*"
]
}
Run Code Online (Sandbox Code Playgroud)
inject.css
alert("newpage");
chrome.tabs.executeScript(null, {code:"document.body.bgColor='red'"});
chrome.tabs.insertCSS(
null,
{
code:"body{background:red;}"
}
);
alert("finishpage");
Run Code Online (Sandbox Code Playgroud) 我正在使用awscli尝试自动化部署过程(将菜谱更改为s3,点击内容以更新cookbook,单击内容以运行收件人,键入我想要执行的配方的名称).
我非常接近,但我找不到任何关于如何通过awscli在opsworks中实际执行给定配方的内容.我认为它必须非常接近更新自定义cookbook:
$ aws opsworks create-deployment --command "{\"Name\":\"update_custom_cookbooks\"}" --stack-id xxxxx --instance-ids xxxxxxxxx
xxxxxxxx #deployment id
Run Code Online (Sandbox Code Playgroud)
该文档没有告诉我'execute_recipes'命令的格式是什么:http://docs.aws.amazon.com/cli/latest/reference/opsworks/create-deployment.html
在发送了一堆猜测并使用光荣洞察力的"无效值",SerializationException和ValidationExceptions之后,我推断出以下内容可能接近我想要的内容:
$ aws opsworks create-deployment --command "{\"Name\":\"execute_recipes\", \"Args\":{\"Recipes\":[\"book::recipe\"]}}" --stack-id xxxxxx --instance-ids xxxxxxxx
A client error (ValidationException) occurred
Run Code Online (Sandbox Code Playgroud)
使Opsworks在给定实例上执行配方的正确JSON模式是什么?
python ×3
elm ×2
javascript ×2
amazon-ec2 ×1
automation ×1
css ×1
css-float ×1
diff ×1
file ×1
git ×1
gitpython ×1
html ×1
lodash ×1
logging ×1
nested-lists ×1
overloading ×1
parsing ×1
revision ×1
svn ×1