标签: sequence

序列或迭代器中的 for 循环

我有 3 个对象Item1Item2一个自定义迭代器。Item2 与 Item1 相同,但它__iter__()比 Item1 多实现一个函数,__iter__()将返回一个自定义迭代器。

class Item1():
    def __init__(self, stop):
        self.stop = stop

    def __len__(self):
        return self.stop - 1

    def __getitem__(self, index):

        if index < self.stop:
            return index + 1
        raise IndexError


class Item2():
    def __init__(self, stop):
        self.stop = stop

    def __len__(self):
        return self.stop - 1

    def __getitem__(self, index):

        if index < self.stop:
            return index + 1
        raise IndexError

    def __iter__(self):
        iterator = MyIterator(self.stop)
        return iterator


class …
Run Code Online (Sandbox Code Playgroud)

python memory iterator for-loop sequence

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

Cats Scala 中的序列和遍历来映射类型

我有一个类型的值List[EitherT[IO, String, Int]],我想对其进行序列以便将其映射到EitherT[IO,String, List[Int]]

我阅读并找到了序列方法,但它给了我一个错误,说它需要 [G] 的隐式应用,如何解决这个问题

types scala sequence applicative scala-cats

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

循环遍历 perl 数组

我正在尝试: 用数字 1 到 10 填充数组的 10 个元素。通过循环数组中包含的值来添加数组中包含的所有数字。

例如,它会从 1 开始,然后第二个数字是 3(1 加 2),然后下一个数字是 6(现有的 3 加新的 3)这是我当前的代码

#!/usr/bin/perl
use warnings;
use strict;
my @b = (1..10);
for(@b){
    $_ = $_ *$_ ; 
}
print ("The total is: @b\n")
Run Code Online (Sandbox Code Playgroud)

这就是结果

The total is: 1 4 9 16 25 36 49 64 81 100
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是:

The total is: 1 3 6 10 etc..
Run Code Online (Sandbox Code Playgroud)

perl sequence

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

如何获取序列的倒数第二个元素?克洛尤尔

我知道如何使用函数 Last 获取最后一个元素,但是是否有可能获取序列的倒数第二个元素?

(defn last
  [args]
   (last args))
(last [1 2 3 4]) ;;--> 4 but i want it to return 3
Run Code Online (Sandbox Code Playgroud)

clojure sequence

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

Python 生成器在 Kotlin 中的等价物是什么?

如果我有一个 python 生成器函数,我们就说这个:

def gen():
    x = 0
    while (true):
        yield x
        x += 1
Run Code Online (Sandbox Code Playgroud)

该函数会记住其当前状态,每次调用时gen()都会产生一个新值。本质上,我想要一个能够记住其状态的 Kotlin 序列。

python yield generator sequence kotlin

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

通过字符串输入时 Clojure 布尔值混淆

我在这里缺少什么?...

虽然这工作得很好:

(def env [true true true false])
=> #'clojquery.core/env
(boolean (first (drop 3 env)))
=> false
Run Code Online (Sandbox Code Playgroud)

如果我将读取行中的字符串转换为第四个值,我将无法获得相同的行为:

(def env (do
           (println "Enter boolean: ")
           (let [in (read-line)]
             (concat [true true true] (map symbol (re-seq #"\w+" in))))))

Enter boolean: 
false
=> #'clojquery.core/env
(vec env)
=> [true true true false]
(first (drop 3 (vec env)))
=> false
(boolean (first (drop 3 env)))
=> true
(if (first (drop 3 (vec env))) "TRUE" "FALSE")
=> "TRUE"
Run Code Online (Sandbox Code Playgroud)

这不是很奇怪吗?感谢您的帮助!

boolean prompt vector clojure sequence

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

向 data.table 添加倒计时

我有一个 data.table,我想向其中添加倒计时,直到列中出现值 1 flag

dt = structure(list(date = structure(19309:19318, class = c("IDate", 
"Date")), flag = c(0, 0, 0, 0, 0, 1, 0, 0, 0, 1)), class = c("data.table", 
"data.frame"), row.names = c(NA, -10L), .internal.selfref = <pointer: 0x55af7de49cb0>)
> dt
          date flag
 1: 2022-11-13    0
 2: 2022-11-14    0
 3: 2022-11-15    0
 4: 2022-11-16    0
 5: 2022-11-17    0
 6: 2022-11-18    1
 7: 2022-11-19    0
 8: 2022-11-20    0
 9: 2022-11-21    0
10: 2022-11-22    1
Run Code Online (Sandbox Code Playgroud)

这是预期的输出

          date flag countdown
 1: 2022-11-13    0 5 …
Run Code Online (Sandbox Code Playgroud)

group-by r sequence data.table

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

窥探迭代器

Kotlin 中有没有一种方法可以“窥视”迭代器的下一个元素而不推进它?对于示例用例,请考虑此函数用于合并两个预排序的序列:

fun merge(seq1: Sequence<Int>, seq2: Sequence<Int>) = sequence<Int> {
    val it1 = seq1.iterator()
    var current1 = if (it1.hasNext()) it1.next() else null
    val it2 = seq2.iterator()
    var current2 = if (it2.hasNext()) it2.next() else null

    while (current1 != null && current2 != null) {
        if (current1 <= current2) {
            yield(current1)
            current1 = if (it1.hasNext()) it1.next() else null
        } else {
            yield(current2)
            current2 = if (it2.hasNext()) it2.next() else null
        }
    }
    while (current1 != null) {
        yield(current1)
        current1 = if (it1.hasNext()) it1.next() …
Run Code Online (Sandbox Code Playgroud)

iterator sequence guava kotlin

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

为什么删除元素时,nim 中不保留序列的顺序?

我正在尝试 nim 并在处理序列时与奇怪的行为作斗争。

如果我运行这段代码:

var
    hobbies = @["Coding", "Creating", "Sports"]

echo hobbies

hobbies.add("Nature")
echo hobbies

hobbies.del(0)
echo hobbies
Run Code Online (Sandbox Code Playgroud)

我期望这个输出,因为我认为它像队列一样工作:

@["Coding", "Creating", "Sports"]
@["Coding", "Creating", "Sports", "Nature"]
@["Creating", "Sports", "Nature"]
Run Code Online (Sandbox Code Playgroud)

但我得到了这个:

@["Coding", "Creating", "Sports"]
@["Coding", "Creating", "Sports", "Nature"]
@["Nature", "Creating", "Sports"]
Run Code Online (Sandbox Code Playgroud)

通过索引删除后.del(0)"Nature"切换到索引0。

难道不应该保留订单吗?

版本:

Nim Compiler Version 1.6.14 [Linux: amd64]
Compiled at 2023-06-29
Run Code Online (Sandbox Code Playgroud)

sequence nim-lang

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

Oracle Sequence开始有疑问

我试图在我的一个表中自动编号Id字段.表已有40行数据,但现在如果我自动编号id字段,我是否必须指定start为41或不?谢谢

我必须这样做吗?

create sequence EMP.SEQ_ID
minvalue 1
maxvalue 99999999999999999
start with 41
increment by 1
cache 50
order;
Run Code Online (Sandbox Code Playgroud)

或者只有这样才行

create sequence EMP.SEQ_ID
minvalue 1
maxvalue 99999999999999999
increment by 1
cache 50
order;
Run Code Online (Sandbox Code Playgroud)

sql oracle sequence

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