小编Ita*_*man的帖子

Python是否将写时复制用于列表的副本?

假设我复制一个现有列表:

existing_list = [ 1, 2, 3 ];
copied_list = existing_list[:]

...

copied_list[2] = 'a' // COW happens here
Run Code Online (Sandbox Code Playgroud)

[一些编辑]

我听说当copyed_list或existing_list发生突变时,Python使用写时复制。这是真的?

在我看来,这就像一个过于复杂的事情,需要到处锁定(考虑多线程)。

为了清楚起见:我不是在寻找COW体现。我只是想了解什么是Python标准行为。

python copy-on-write

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

REST API:嵌套URI可以与ID共存吗?

假设我有一系列"订单".

(a)订单分为三类:"待定","已确认","已完成".

(b)当然,可以通过ID查询订单

最初我想到了这个URI方案:

为一个):

  • GET /orders/:id

对于(b):

  • GET /orders/pending
  • GET /orders/confirmed
  • GET /orders/completed

这种方法的问题在于,(非常非常罕见)订单将接收ID"待定"(或"已确认"或"已完成"),在这种情况下,URI /orders/pending变得不明确.

另一种选择是使用:GET /orders_pending但这似乎不那么优雅.

有什么建议?

rest http

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

用于根据先前值过滤序列的惯用语clojure和Javascript表达式

所以我有一个整数seq.我想选择所有其他元素,但前提是它前面的元素是正数.例如,给定此输入:

4, 9, -1, 8, 3, 20, -1, 7
Run Code Online (Sandbox Code Playgroud)

我想得到这个输出:

9, 20
Run Code Online (Sandbox Code Playgroud)

(上下文:这些值表示已应用某种样式的文本片段.4,9对表示用户选择的字符4,9(不包括)并单击"粗体".当用户"Unblods"时只有第一个成员每对的变为-1.因此,为了找到所有"活动"样式,我需要过滤那些带有-1的样式

我正在寻找Javascript和Clojure解决方案(因为此代码需要在浏览器端和服务器端运行).

这是一个可能的JS impl.:

styleList.map(function(curr, i) {
  if (i % 2 == 1) 
    return (styleList[i - 1] >= 0) ? curr : -1;
  else
    return -1;
}).filter(function(curr) { return curr >= 0 })
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个解决方案:我传递给的函数.map()使用索引i来检查前一个值.这感觉很尴尬.我正在寻找一个更实用的解决方案.

编辑

这是另一个我不喜欢的解决方案(再次:由于arr对象的突变而不是很有用):

var arr = [];
styleList.reduce(function(prev, curr) {
  arr.push(prev == -1 ? -1 : curr);
  return curr;
});
arr.filter(function(curr, i) {
  return i % 2 == 1 …
Run Code Online (Sandbox Code Playgroud)

javascript clojure

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

在Swing的JTextPane中设置选项卡策略

每当我按Tab键时,我希望我的JTextPane插入空格.目前它插入制表符(ASCII 9).

反正是有自定义JTextPane的选项卡策略(除了捕获"tab-key"事件和插入空格本身似乎)?

java swing jtextpane

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

Pythonic习语用于检查(负)数组索引的有效性

我的函数将字符串拆分为行,检查索引行,并返回两个值中的一个.这是一个简化版本:

def f(text, index):
   rows = text.split('\n')
   row = rows[index] # <-- IndexError thrown here.
   if row_meets_some_condition:
      return "Yes"
   else:
      return "No"
Run Code Online (Sandbox Code Playgroud)

来电者有时通行证负值index(当他想用结束基于文件的索引),它工作正常,除非text在这种情况下,我得到一个山楂太少线路,IndexErrorrow = rows[index]线路.

除了捕获错误之外,是否有一种惯用的方法来检查这index是一个合法的索引rows

python

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

Java执行者:提交一批任务?

这就是我想要实现的目标:我想要一些对象(可能是某种执行器),我可以提交一系列要执行的任务(比如说List<Callable<T>>).当所有这些任务都已完成运行时,我希望得到通知(可能通过Future对象中可用的值).

这个"执行者"应该能够同时处理几个批次.换句话说:两个(或更多)代码站点可以提交两个不同的批次,并且只有当"他的"批次结束时才会通知每个站点.

更好的是,我希望这Future能为我提供一个List<T>由各种任务返回的值Callable.

总结以上内容我正在寻找能够在概念上与以下内容完全相同的API:

public T Future<List<T>> submitBatch(List<Callable<T>> tasks)
Run Code Online (Sandbox Code Playgroud)

什么罐头结构java.util.concurrent可以帮助我实现最大化?

java concurrency java.util.concurrent

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