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
在 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