其他
Julia 笔记之元组
内卷会使社会进步吗
1引言
介绍 julia 中的元组结构。
内容摘抄自 Think julia 书籍。
2元组不可变
和 python 的元组一样,julia 中的元组中的元组也是不可变的,使用 逗号 或者 括号 组成元组结构:
julia> t = 'a', 'b', 'c', 'd', 'e'
('a', 'b', 'c', 'd', 'e')
julia> t = ('a', 'b', 'c', 'd', 'e')
('a', 'b', 'c', 'd', 'e')
如果只有一个元素,得在元素后面添加逗号:
julia> t1 = ('a',)
('a',)
julia> typeof(t1)
Tuple{Char}
# 不加逗号
julia> t2 = ('a')
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
julia> typeof(t2)
Char
使用 tuple 函数创建空元组:
julia> tuple()
()
可以储存多种不同类型的元素:
julia> t3 = tuple(1, 'a', pi)
(1, 'a', π = 3.1415926535897...)
可以使用中括号加索引,获取元组元素:
julia> t = ('a', 'b', 'c', 'd', 'e');
julia> t[1]
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
也可以切片:
julia> t[2:4]
('b', 'c', 'd')
修改元素内容则会报错:
julia> t[1] = 'A'
ERROR: MethodError: no method matching setindex!(::NTuple{5,Char}, ::Char, ::Int64)
3数组和元组
使用 zip 函数可以连接多个元素,返回元组结构:
julia> s = "abc";
julia> t = [1, 2, 3];
julia> zip(s, t)
Base.Iterators.Zip{Tuple{String,Array{Int64,1}}}(("abc", [1, 2, 3]))
julia> for pair in zip(s, t)
println(pair)
end
('a', 1)
('b', 2)
('c', 3)
也可以使用 collect 函数获取 zip 结果中的元素:
julia> collect(zip(s, t))
3-element Array{Tuple{Char,Int64},1}:
('a', 1)
('b', 2)
('c', 3)
如果两个数据元素个数不一致,则取最短的元素个数进行配对:
julia> collect(zip("Anne", "Elk"))
3-element Array{Tuple{Char,Char},1}:
('A', 'E')
('n', 'l')
('n', 'k')
可以使用 for 循环遍历数组中的元组中的元素:
julia> t = [('a', 1), ('b', 2), ('c', 3)];
julia> for (letter, number) in t
println(number, " ", letter)
end
1 a
2 b
3 c
enumerate 函数可以获取元素的索引
及内容
:
julia> for (index, element) in enumerate("abc")
println(index, " ", element)
end
1 a
2 b
3 c
4字典和元组
遍历字典的键和值:
julia> d = Dict('a'=>1, 'b'=>2, 'c'=>3);
julia> for (key, value) in d
println(key, " ", value)
end
a 1
c 3
b 2
把数组中的元组转为字典:
julia> t = [('a', 1), ('c', 3), ('b', 2)];
julia> d = Dict(t)
Dict{Char,Int64} with 3 entries:
'a' => 1
'c' => 3
'b' => 2
zip 函数返回结果转为字典:
julia> d = Dict(zip("abc", 1:3))
Dict{Char,Int64} with 3 entries:
'a' => 1
'c' => 3
'b' => 2
欢迎加入生信交流群。加我微信我也拉你进 微信群聊 老俊俊生信交流群
哦,数据代码已上传至QQ群,欢迎加入下载。
群二维码:
老俊俊微信:
知识星球:
所以今天你学习了吗?
今天的分享就到这里了,敬请期待下一篇!
最后欢迎大家分享转发,您的点赞是对我的鼓励和肯定!
如果觉得对您帮助很大,赏杯快乐水喝喝吧!
往期回顾
◀...