julia - 迭代 Julia 中的所有可能性

标签 julia

如果我想对每对字母执行某些操作,在 Julia 中可能如下所示:

for l1 in 'a':'z'
    for l2 in 'a':'z'
        w = l1*l2
        # ... do something with w ...
    end
end

我想将其推广到任意长度的单词,给定一个指定所需字母数量的值n。我如何在 Julia 中最好地做到这一点?

最佳答案

您可以使用:

for ls in Iterators.product(fill('a':'z', n)...))
    w = join(ls)
    # ... do something with w ...
end

特别是如果你想将它们收集在一个数组中,你可以这样写:

join.(Iterators.product(fill('a':'z', n)...))

或将其展平为向量

vec(join.(Iterators.product(fill('a':'z', n)...)))

但请注意,在大多数情况下,这不是必需的,并且对于较大的 n ,最好不要具体化输出,而只是按照上面的建议对其进行迭代。

关于julia - 迭代 Julia 中的所有可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54272958/

相关文章:

c++ - OpenCL 内核 _local 内存行为不正确

plot - 如何在 Julia 中绘制形状

matrix - Julia 在矩阵中查找(行,列)而不是索引

parameter-passing - Julia:将参数传递给 `include("文件.jl")`

julia - 在 Julia 中模仿 Scala Option[T] 的最佳方式?

julia - 如何在 Julia 0.5 中获取 Pkg? ("ERROR: unknown package Pkg")

if-statement - 有没有一种干净的方法可以在 julia 中实现多个相同类型的 if 语句?

if-statement - Julia:检查向量是否是数字向量

parallel-processing - @parallel 和 pmap 到底有什么区别?

arrays - 如何将数组数组转换为矩阵?