小编use*_*854的帖子

Python中的循环列表迭代器

我需要迭代一个循环列表,可能多次,每次从最后访问的项目开始.

用例是连接池.客户端请求连接,迭代器检查指向的连接是否可用并返回它,否则循环直到找到可用的连接.

有没有一种巧妙的方法在Python中做到这一点?

python iterator list

86
推荐指数
4
解决办法
5万
查看次数

如何将所有控制台输出保存到R中的文件?

我想将所有控制台文本重定向到一个文件.这是我尝试过的:

> sink("test.log", type=c("output", "message"))
> a <- "a"
> a
> How come I do not see this in log
Error: unexpected symbol in "How come"
Run Code Online (Sandbox Code Playgroud)

这是我在test.log中得到的:

[1] "a"
Run Code Online (Sandbox Code Playgroud)

这是我在test.log中想要的:

> a <- "a"
> a
[1] "a"
> How come I do not see this in log
Error: unexpected symbol in "How come"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?谢谢!

console logging r file

71
推荐指数
3
解决办法
9万
查看次数

我们再来一次:将一个元素附加到R中的列表中

对于在摊销的常数时间内将对象附加到R中的列表,我不满意

> list1 <- list("foo", pi)
> bar <- list("A", "B")
Run Code Online (Sandbox Code Playgroud)

我怎么能新元素追加barlist1?显然,c()不起作用,它变平bar:

> c(list1, bar)
[[1]]
[1] "foo"

[[2]]
[1] 3.141593

[[3]]
[1] "A"

[[4]]
[1] "B"
Run Code Online (Sandbox Code Playgroud)

索引作业的分配:

> list1[[length(list1)+1]] <- bar
> list1
[[1]]
[1] "foo"

[[2]]
[1] 3.141593

[[3]]
[[3]][[1]]
[1] "A"

[[3]][[2]]
[1] "B"
Run Code Online (Sandbox Code Playgroud)

这种方法的效率是多少?有更优雅的方式吗?

performance r list append

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

BlockingQueue - 阻止drainTo()方法

BlockingQueue有一个名为drainTo()的方法,但它没有被阻止.我需要一个我想阻止的队列,但也能够在一个方法中检索排队的对象.

Object first = blockingQueue.take();

if ( blockingQueue.size() > 0 )
    blockingQueue.drainTo( list );
Run Code Online (Sandbox Code Playgroud)

我想上面的代码会起作用,但我正在寻找一个优雅的解决方案.

java concurrency

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

Python:当父母去世时如何杀死子进程?

子进程以#开头

subprocess.Popen(arg)
Run Code Online (Sandbox Code Playgroud)

如果父母异常终止,有没有办法确保它被杀死?我需要这个在Windows和Linux上都可以工作.我知道这个Linux解决方案.

编辑:

subprocess.Popen(arg)如果使用不同的启动流程的方法存在解决方案,则可以放宽启动子流程的要求.

python linux windows subprocess kill

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

列出多个jar文件的内容

我在一堆罐子里面搜索一个.class文件.

jar tf abc.jar 
Run Code Online (Sandbox Code Playgroud)

适用于一个文件.我试过了

find -name "*.jar" | xargs jar tf
Run Code Online (Sandbox Code Playgroud)

没有打印.我能想到的唯一解决方案是解压缩所有,然后搜索.有没有更好的办法?我在LUnix上.

编辑:扫描多个jar时,将jar文件名与类一起打印很有用.这种方法效果很好:

find . | grep jar$ | while read fname; do jar tf $fname | grep SchemaBuilder && echo $fname; done
Run Code Online (Sandbox Code Playgroud)

产生的样本输出:

  1572 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder$1.class
  1718 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder$2.class
 42607 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder.class
./XmlSchema-1.3.2.jar
  1572 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder$1.class
  1718 Wed Jul 25 10:20:18 EDT 2007 org/apache/ws/commons/schema/SchemaBuilder$2.class
 42607 Wed Jul …
Run Code Online (Sandbox Code Playgroud)

java linux shell jar

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

如何在Eclipse中按名称查找包?

在Eclipse中导航到Java包的最快方法是什么?我正在寻找类似于Ctrl+ Shift+ T类的功能.

编辑:Ctrl+ H有效,但用途有限.首先,没有简单的方法导航到搜索结果,因为它不可点击.

在此输入图像描述

我仍然缺少Ctrl+ Shift+ T类型的功能.

java eclipse keyboard-shortcuts

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

Python中的手动垃圾收集

有没有办法手动删除垃圾收集拒绝摆脱的对象,即使我打电话gc.collect()?在Python 3.0中工作

python garbage-collection

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

在Hibernate中使用saveOrUpdate()创建新记录而不是更新现有记录

我有一个类用户

class User { 
  int id;
  String name;
}
Run Code Online (Sandbox Code Playgroud)

其中id是本机生成器,User.hbm.xml 并且name是DB中的主键.

在我的数据库中,我保存了一些有关用户的信

比我想要连接有关用户的这些信息.

例如,在我的数据库中,我有一行 INSERT INTO User VALUES ('Bill');

Main.java

User bill = new User();
bill.setName("Bill");
session.saveOrUpdate(bill);
Run Code Online (Sandbox Code Playgroud)

此代码始终尝试Bill在表中插入新行,而不是更新现有Bill行.

java database orm hibernate

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

printf双打的舍入行为

有人可以解释这种行为吗?我很清楚浮点数的机器级表示.这似乎与printf及其格式有关.两个数字都用浮点表示法精确表示(检查:乘以64得到一个整数).

#include <stdio.h>
#include <iostream>
using namespace std;

int main() {
  double x1=108.765625;
  printf("%34.30f\n", x1);
  printf("%9.5f\n", x1);
  printf("%34.30f\n", x1*64);

  double x2=108.046875;
  printf("%34.30lf\n", x2);
  printf("%9.5f\n", x2);
  printf("%34.30f\n", x2*64);
}
Run Code Online (Sandbox Code Playgroud)

输出:

> 108.765625000000000000000000000000
> 108.76562
> 6961.000000000000000000000000000000
> 108.046875000000000000000000000000
> 108.04688
> 6915.000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)

注意,第一个数字向下舍入,第二个数字向上舍入.

c c++ double printf rounding

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