小编sim*_*ack的帖子

Pythonic方法结合FOR循环和IF语句

我知道如何在单独的行上使用for循环和if语句,例如:

>>> a = [2,3,4,5,6,7,8,9,0]
... xyz = [0,12,4,6,242,7,9]
... for x in xyz:
...     if x in a:
...         print(x)
0,4,6,7,9
Run Code Online (Sandbox Code Playgroud)

而且我知道当语句很简单时我可以使用列表理解来组合这些,例如:

print([x for x in xyz if x in a])
Run Code Online (Sandbox Code Playgroud)

但是我找不到的是一个很好的例子(复制和学习)演示了一组复杂的命令(不仅仅是"print x"),这些命令是在for循环和一些if语句的组合之后发生的.我期望的东西看起来像:

for x in xyz if x not in a:
    print(x...)
Run Code Online (Sandbox Code Playgroud)

这不是python应该工作的方式吗?

python loops for-loop if-statement

244
推荐指数
8
解决办法
35万
查看次数

从常规ES6类方法中调用静态方法

调用静态方法的标准方法是什么?我可以考虑使用constructor或使用类本身的名称,我不喜欢后者,因为它没有必要.前者是推荐的方式,还是还有其他的东西?

这是一个(人为的)例子:

class SomeObject {
  constructor(n){
    this.n = n;
  }

  static print(n){
    console.log(n);
  }

  printN(){
    this.constructor.print(this.n);
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript static class ecmascript-6 es6-class

161
推荐指数
3
解决办法
10万
查看次数

检查某些内容是否可迭代

在MDN文档中:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of

for...of构造被描述为能够迭代"可迭代"对象.但有没有一种很好的方法来决定一个对象是否可迭代?

我试图找到数组,迭代器和生成器的公共属性,但一直无法这样做.

除了for ... of在try块中执行并检查类型错误之外,还有一种干净的方法吗?

javascript

85
推荐指数
7
解决办法
3万
查看次数

如何在pytest下测试单个文件

你如何测试pytest中的单个文件?我只能在文档中找到忽略选项而不"仅测试此文件"选项.

最好这可以在命令行上工作而不是setup.cfg,因为我想在ide中运行不同的文件测试.整个套房需要很长时间.

python pytest

49
推荐指数
3
解决办法
2万
查看次数

Numpy:对于一个数组中的每个元素,在另一个数组中查找索引

我有两个一维数组,x和y,一个比另一个小.我试图在x中找到y的每个元素的索引.

我发现了两种天真的方法,第一种是缓慢的,第二种是内存密集型.

缓慢的方式

indices= []
for iy in y:
    indices += np.where(x==iy)[0][0]
Run Code Online (Sandbox Code Playgroud)

记忆猪

xe = np.outer([1,]*len(x), y)
ye = np.outer(x, [1,]*len(y))
junk, indices = np.where(np.equal(xe, ye))
Run Code Online (Sandbox Code Playgroud)

有更快的方式或更少的内存密集型方法吗?理想情况下,搜索将利用这样一个事实,即我们在列表中搜索的不是一件事,而是很多事情,因此稍微更适合并行化.如果您不假设y的每个元素实际上都在x中,则奖励积分.

python arrays indexing search numpy

39
推荐指数
6
解决办法
3万
查看次数

如何使用多个线程更快地使git克隆?

我对github的互联网速度从来都不快,并且它以50kb/s的速度挥之不去(我的互联网速度是20mbit,这不是很快,但仍比这快得多).根据我的估计,存储库是多gb,因此需要很长时间.

git是否支持使用多线程下载对象,这样我可以最大化我的网速?

git git-clone

32
推荐指数
2
解决办法
2万
查看次数

YAML在多行字符串中注释

YAML是否支持多行字符串中的注释?

我正在尝试做这样的事情,但验证器正在抛出错误:

key:
  #comment
  value
  #comment
  value
  value     #comments here don't work either
Run Code Online (Sandbox Code Playgroud)

yaml

26
推荐指数
1
解决办法
2万
查看次数

ES6速记导入

是否有更短的ES6方式:

var assert = require('chai').assert;
Run Code Online (Sandbox Code Playgroud)

import chai from 'chai';
var assert = chai.assert;
Run Code Online (Sandbox Code Playgroud)

(chai是chai-assertion库,万一你还没有听说过.)

import ecmascript-6

16
推荐指数
3
解决办法
9715
查看次数

保存sklearn管道的部分

我在模型中的某些功能可能需要一些时间才能生成,因此要快速试验多个功能和参数,最好将这些功能保存到磁盘供以后使用.

作为一个具体的例子(从这里开始),假设我有以下管道:

pipeline = Pipeline([
  ('extract_essays', EssayExractor()),
  ('features', FeatureUnion([
    ('ngram_tf_idf', Pipeline([
      ('counts', CountVectorizer()),
      ('tf_idf', TfidfTransformer())
    ])),
    ('essay_length', LengthTransformer()),
    ('misspellings', MispellingCountTransformer())
  ])),
  ('classifier', MultinomialNB())
])
Run Code Online (Sandbox Code Playgroud)

我想换CountVectorizer()CountVectorizer(max_features=1000),那么只CountVectorizer,MultinomialNB需要因为参数重新计算或已改变之前的变换.

这可以以某种方式实现吗?

python scikit-learn

13
推荐指数
1
解决办法
1377
查看次数

如何在启用coverage时在PyCharm中调试py.test

启用coverage后,如何在PyCharm中调试py.test?

使用覆盖率启用覆盖率--cov=project --cov-report=term-missing,删除此密码并触发断点.

版本:pycharm 5.0.3,pytest == 2.8.5,pytest-cache == 1.0,pytest-cov == 2.2.0,pytest-pep8 == 1.0.6,pytest-xdist == 1.13.1,python-连身== 2.6.0.

(感谢jon关于进一步诊断问题的建议)

python debugging pytest pycharm

13
推荐指数
1
解决办法
2651
查看次数