小编Aar*_*ell的帖子

Python中是否有相当于“append”的切片?

为了添加到列表前面,我使用 the_list[0:0]。但是添加切片后:

  • [-0:-0] 不起作用。
  • [::-1][0:0] 不起作用。
  • 显然 [-1:-1] 不起作用。
  • [len(the_list), len(the_list)] 不算数——在这里只查找数字

例子:

results = [3,1,0]
results[-1:-1] = [3]
print(results)

>>> [3,1,3,0]

results[-0:-0] = 5
print(results)

>>> [5,3,1,3,0]

results = [3,1,0]
results[-1:-1] = [3]
print(results)

>>> [3,1,3,0]

results[-0:-0] = 5
print(results)

>>> [5,3,1,3,0]
Run Code Online (Sandbox Code Playgroud)

想法?

python

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

你能在 Clojure 中看到原子的先前值吗?

“Clojure 形而上学将身份解释为我们人类强加于一个过程随时间产生的一系列不变价值的东西”。

对状态序列强加同一性

(希金斯沃思,2015 年 10 月)

如果这是真的,如果身份环绕所有这些状态,那么我应该能够做这样的事情。

user=> (def wow (atom 1))
#'user/wow
user=> (swap! wow (fn [cur] "You say 'Hello'."))
"You say 'Hello'."
user=> (swap! wow (fn [cur] "I say 'Goodbye'."))
"I say 'Goodbye'."
user=> (swap! wow (fn [cur] "Hello, hello!"))
"Hello, hello!"

; Can I do this?
user=> (get-old-atom-state wow 0)
1
(get-old-atom-state wow 1)
"You say 'Hello'"
Run Code Online (Sandbox Code Playgroud)

是这样吗?或者,如果不使用,Clojure 实际上是否会 GC 旧值?

clojure

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

合并计算两个向量返回映射Clojure

我得到了两个向量[shoes milk shoes][1 3 1],而我想要得到的地图是{shoes 2, milk 3}。我尝试了zipmap两个向量并且只{shoes 1 milk 3}显示。没有循环和迭代,还有另一种方法吗?

dictionary vector clojure zipmap

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

了解Clojure代码的执行流程

我现在正在学习 Clojure,我来自命令式编程,所以我在理解该代码的执行流程时遇到了问题:

(defn chop-chop [coll]

  (let [x (partition-by identity coll)]

    (map list (map (comp str first) x)

                (map count x))))

=> (chop-chop "aaaabbbcca")

=> (("a" 4) ("b" 3) ("c" 2) ("a" 1))
Run Code Online (Sandbox Code Playgroud)

我明白我们:

  1. 在此处创建带有参数 coll 的函数chop-chop

  2. 然后我们为 coll 应用函数 partition-by,但我不确定身份是什么

  3. 接下来我们将之前操作的结果绑定到 x

  4. 但我无法理解下一行代码:

(map list (map (comp str first) x)
    (map count x))))
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释该程序的逐步执行流程吗?非常感谢!

clojure

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

标签 统计

clojure ×3

dictionary ×1

python ×1

vector ×1

zipmap ×1