如果我想在每对字母上做一些事情,在Julia中可能看起来像这样:
for l1 in 'a':'z'
for l2 in 'a':'z'
w = l1*l2
# ... do something with w ...
end
end
我想将其推广到任何长度的单词,给定值n
指定所需字母的数量。我该如何在Julia中做到最好?
答案 0 :(得分:5)
您可以使用:
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
,最好不要具体化输出,而应如上所述对它进行迭代。