如果我想对每对字母执行某些操作,在 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/