小编E_n*_*ate的帖子

beautifulsoup和bs4有什么区别

我是python的新手,我试图解析一些XML文件,以便添加一些新的标签并存储新的XML文件.

python-beautifulsoup接缝是适合它的包装.在网上搜索教程,如何向BeautifulSoup解析的XML添加新标签,我发现,使用了包python-bs4.

查看包描述,两个包都具有相同的标题:

python-bs4 - error-tolerant HTML parser for Python
python-beautifulsoup - error-tolerant HTML parser for Python
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:有什么区别?

//更新:如果有人意味着对这个问题进行投票,那么留下原因作为评论是有帮助的.

python xml beautifulsoup python-3.x bs4

15
推荐指数
3
解决办法
8189
查看次数

为什么Stream#reduce没有隐式接受处理超类型元素的累积函数?

考虑这些类和累积函数,它们代表了我原始上下文的简化(但是再现了同样的问题):

abstract static class Foo {
    abstract int getK();
}
static class Bar extends Foo {
    int k;
    Bar(int k) { this.k = k; }
    int getK() { return this.k; }
}

private static Foo combined(Foo a1, Foo a2) {
    return new Bar(a1.getK() + a2.getK());
}
Run Code Online (Sandbox Code Playgroud)

我试图通过依赖单独的函数来执行项目的累积(最初的数据索引报告)combined,该函数直接处理类型的元素Foo.

Foo outcome = Stream.of(1,2,3,4,5)
        .map(Bar::new)
        .reduce((a,b) -> combined(a, b))
        .get();
Run Code Online (Sandbox Code Playgroud)

事实证明,此代码导致编译错误(OpenJDK"1.8.0_92"):"lambda表达式中的错误返回类型:Foo无法转换为Bar".编译器坚持尝试使用Bar累积元素来减少流,即使Foo累积函数的参数和返回类型都有公共类型.

我还发现,只要我明确地将流映射到Foos 流中,我仍然可以采用这种方法:

Foo outcome = Stream.of(1,2,3,4,5)
        .<Foo>map(Bar::new)
        .reduce((a,b) -> combined(a, …
Run Code Online (Sandbox Code Playgroud)

java type-inference java-8 java-stream

14
推荐指数
3
解决办法
630
查看次数

如何将Node.js的TypeScript代码编译为一个文件?

我想在使用Node.js时将TypeScript编译为一个文件.

我试过像这样配置"tsconfig.json":

"compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "noImplicitAny": false,
    "sourceMap": false,
    "outFile": "./app/index.js",
    "pretty": true,
    "types": [
      "node"
    ]
  }",
Run Code Online (Sandbox Code Playgroud)

...但是当我尝试使用module" set to"commonjs"时,我得到错误:

error TS6082: Only 'amd' and 'system' modules are supported alongside --outFile.
Run Code Online (Sandbox Code Playgroud)

如果我将其更改为"module": "system",则在运行该文件时出现此错误node:

ReferenceError: System is not defined
Run Code Online (Sandbox Code Playgroud)

如果我module改为"amd",我在运行文件时遇到此错误node:

ReferenceError: define is not defined
Run Code Online (Sandbox Code Playgroud)

node.js typescript typescript2.0

14
推荐指数
2
解决办法
4546
查看次数

如何在TypeScript中声明只读数组元组?

我们可以在TypeScript中声明一个类型化的元组,例如,使用类型注释[string, number].这意味着一个包含2个元素的数组,其中第一个元素需要是一个字符串,第二个元素需要一个数字.

我们还可以声明只读数组,ReadonlyArray<string>这意味着只读数组的字符串.

现在我想在第一个例子中有一个只读元组,但我希望它像第二个例子中那样是只读的.我该如何申报?

typescript

14
推荐指数
4
解决办法
9822
查看次数

为什么Java Scheduler在Windows上会出现明显的时间漂移​​?

我在Windows 7上运行Java服务,该服务每天在上运行一次SingleThreadScheduledExecutor。尽管它不是很关键,但我从来没有给过太多,但最近查看了一下数据,发现该服务每天大约漂移15分钟,这听起来实在太多了。

Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(() -> {
   long drift = (System.currentTimeMillis() - lastTimeStamp - seconds * 1000);
   lastTimeStamp = System.currentTimeMillis();
}, 0, 10, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)

这种方法+110ms每10秒几乎都会漂移一次。如果我每隔1秒运行一次,漂移平均+11ms

有趣的是,如果我对一个Timer()值执行相同操作,则其平均漂移小于一整毫秒。

new Timer().schedule(new TimerTask() {
    @Override
    public void run() {
        long drift = (System.currentTimeMillis() - lastTimeStamp - seconds * 1000);
        lastTimeStamp = System.currentTimeMillis();
    }
}, 0, seconds * 1000);
Run Code Online (Sandbox Code Playgroud)

Linux:不会漂移(也不与Executor或Timer一起使用)
Windows:不会像Executor那样疯狂地漂移,与Timer无关

经过Java8和Java11测试。

有趣的是,如果您假设每秒11ms的漂移,那么您每天将获得950400ms的漂移,相当于15.84 minutes每天。因此,这是非常一致的。

问题是:为什么?
为什么使用SingleThreadExecutor而不是使用Timer会发生这种情况。

Update1 按照Slaw的评论,我尝试了多种不同的硬件。我发现此问题在任何个人硬件上均未发现。仅对公司一。在公司硬件上,它也出现在Win10上,尽管数量少了一个数量级。

java time

14
推荐指数
1
解决办法
258
查看次数

为什么在包含闭包的选项中“一种类型比另一种更通用”?

我写了一些编译好的代码,然后我变成TOption<T>,现在我收到了这个错误:

error[E0308]: mismatched type...one type is more general than the other
Run Code Online (Sandbox Code Playgroud)

在构建最小案例时,我注意到如果我更改data: &strdata: String代码再次编译正常。

游乐场链接

pub trait Subscriber {
    fn recv(&mut self, data: &str);
}

pub struct Task<T>(pub Option<T>)
where
    T: Fn(&str);

impl<T> Subscriber for Task<T>
where
    T: Fn(&str),
{
    fn recv(&mut self, data: &str) {
        self.0.take().unwrap()(data)
    }
}

fn main() {
    Task(Some(|_| ()));
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我了解这里发生了什么吗?

rust

14
推荐指数
1
解决办法
1915
查看次数

重新缩放斜率和重新缩放截距

我有几个问题,重新调整斜率重新调整拦截CT*DICOM*:

  1. 他们是否习惯将原始数据从Scanner传输到Hounsfield数据集,水数为0,空气为-1000?
  2. 我在图像显示组中.如何知道重新缩放斜率和重新缩放截距值?
  3. 重新缩放斜率和重新缩放截距的确切含义是什么?
  4. 他们如何确定?谢谢,

dicom

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

用文档片段javascript替换元素内容

我正在尝试用文档片段替换元素的所有内容:

var frag = document.createDocumentFragment()

文档片段正在创建中.没有问题.我添加元素就好了,也没有问题.我可以使用它来附加它element.appendChild(frag).这也很好用.

我正在尝试创建一个类似于jQuery HTML的"替换"方法.我并不担心旧的浏览器兼容性.是否有一个神奇的功能来替换元素的所有内容?

我已经尝试过element.innerHTML = frag.cloneNode(true),(根据我能找到的每个 '替换元素内容'维基),这不起作用.它给了我<div>[object DocumentFragment]</div>.

请不要图书馆.这意味着如果你把一个jQuery解决方案作为答案,你就会被投票.不是想成为一个混蛋,但它发生在一次.

谢谢!

编辑 为了清楚起见,我正在寻找一个"神奇"的解决方案,我知道如何一次删除所有现有元素,然后附加我的片段.

javascript replace documentfragment

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

Rust 中的泛型部分专业化

让我们看一些数学向量的例子。根据空间维度,它由不同数量的组件组成。

  • 对于 2D:x,y;
  • 对于 3D:x、y、z;
  • 对于 4D:x、y、z、w;
  • 通用:N 个组件。

在C++中我可以使用SFINAE概念来实现它。

template <size_t D, typename T, typename = void>
struct Vector;

// Implement for 2D
template<size_t D, typename T>
struct Vector <D, T, std::enable_if_t<(D == 2)>>
{
    T x;
    T y;
}

// Implement for 3D
template<size_t D, typename T>
struct Vector <D, T, std::enable_if_t<(D == 3)>>
{
    T x;
    T y;
    T z;
}
    
// Implement for 4D
template<size_t D, typename T>
struct Vector <D, T, std::enable_if_t<(D == 4)>>
{ …
Run Code Online (Sandbox Code Playgroud)

generics rust

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

TensorFlow中的异步计算

最近我一直在玩TensorFlow,我提到框架无法使用我所有可用的计算资源.在卷积神经网络教程中,他们提到了这一点

天真地使用模型参数的异步更新导致次优的训练性能,因为可以在模型参数的陈旧副本上训练单个模型副本.相反,采用完全同步更新将与最慢的模型副本一样慢.

虽然他们在教程和白皮书中都提到了它,但我并没有真正找到在本地机器上进行异步并行计算的方法.它甚至可能吗?或者它是TensorFlow的分布式待发布版本的一部分.如果是,那怎么样?

python tensorflow

12
推荐指数
1
解决办法
7974
查看次数