如果我想对每一对字母做点什么,在Julia中可能会是这样:
for l1 in 'a':'z' for l2 in 'a':'z' w = l1*l2 # ... do something with w ... end end
我想把它概括为任何长度的单词,给定一个值 n 指定所需的字母数。我在茱莉亚最好怎么做?
n
你可以使用:
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 最好不要具体化输出,而是按照上面的建议迭代输出。