Julia 相当于 python 列表乘法

Julia equivalent to python list multiplication

在 python 中,我可以使用 + 和 * 运算符快速连接和创建包含重复元素的列表。例如:

my_list = [1] * 3 + ['a'] * 4  # == [1, 1, 1, 'a', 'a', 'a', 'a']

与 Julia 类似,我可以使用 * 和 ^ 运算符快速连接和创建包含重复元素的字符串。例如:

my_string = "1"^3 * "a"^4  # == "111aaaa"

我的问题是 Julia 中是否有一个方便的列表(数组)等价物。如果不是,那么定义具有重复元素和串联的数组的最简单方法是什么?

您可以使用repeat,例如

[repeat([1], 3); repeat(['a'],4)]

产生 Any[1, 1, 1, 'a', 'a', 'a', 'a'].

对于上述情况,一个较短的表格是填写:

[fill(1,3); fill('a', 4)]

如果您愿意,您还可以定义一个 Python 风格的运算符:

⊕(a::AbstractVector{T}, n::Integer) where T = repeat(a, n)
⊕(a::T, n::Integer) where T = fill(a, n)

符号 可以通过输入 \oplus 并按 Tab 键在 Julia 中输入。

现在您可以像 Python 那样做:

julia> [1,2] ⊕ 2
4-element Vector{Int64}:
 1
 2
 1
 2

julia> 3 ⊕ 2
2-element Vector{Int64}:
 3
 3