Algunas Estructuras de Datos¶
Para más ejemplos consultar Introducción a la programación en Julia.
Para más comparaciones con Python Julia for Pythonistas.
Julia |
Python |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Arreglos (similar a las listas de Python)¶
[67]:
#Creamos un arreglo
t = ['a', 'b', 'c', 'd', 'e', 'f'];
println(t[1:4])
println(t[4:end])
#crea una copia del arreglo
w = t[:]
s = t
println("t original ", t)
w[2:3] = ['x', 'y'];
println("w copia ", w)
s[2:3] = ['W', 'H'];
println("s hace referencia al original ", s)
println("t ha sido modificado mediante s ", t)
['a', 'b', 'c', 'd']
['d', 'e', 'f']
t original ['a', 'b', 'c', 'd', 'e', 'f']
w copia ['a', 'x', 'y', 'd', 'e', 'f']
s hace referencia al original ['a', 'W', 'H', 'd', 'e', 'f']
t ha sido modificado mediante s ['a', 'W', 'H', 'd', 'e', 'f']
Sintaxis de punto¶
Para cada operador binario, por ejemplo , existe un operador punto . que define la operación * para cada elemento del arreglo. [3, 4, 5] * 2 no está definido, pero [3, 4, 5] .* 3 se define como [3 * 2, 4 * 2, 5 * 2]
[74]:
println([3, 4, 5] .* 3 )
println([3, 4, 5] .^ 3 )
println(sum([3, 4, 5] .^ 3))
[9, 12, 15]
[27, 64, 125]
216
[84]:
# El operador punto permite aplicar a cada elemento de la lista una
# función específica
println(sum.(
[
[3, 4, 5],
[1, 2, 3] .+ 1
]
)
)
[12, 9]
[78]:
unas = uppercase.(["lorena", "natalia", "laura"]);
println(unas)
["LORENA", "NATALIA", "LAURA"]
[100]:
a = [1, 2, 3]
b = [3, 4, 5]
a .* b
[100]:
3-element Array{Int64,1}:
3
8
15
Diccionarios¶
Lectura Recomendada para más ejemplos
[53]:
# En python diccionario = {'nombre' : 'Natalia', 'edad' : 26, 'cursos': ['Python','Django','Julia'] }
diccionario = Dict("nombre" => "Natalia", "edad" => 26, "cursos" => ["Python","Django","Julia"])
[53]:
Dict{String,Any} with 3 entries:
"edad" => 26
"cursos" => ["Python", "Django", "Julia"]
"nombre" => "Natalia"
[61]:
lugares = Dict("antioquia" => 5, "bogotá" => 2,
"caldas" => 5, "supía" => "nunca")
println(lugares, "\n")
println("¿Cuántas veces has estado en caldas? ", lugares["caldas"])
println("¿Cuántas veces has estado en supía? ", lugares["supía"])
println("¿Caldas pertenece a la lista de lugares? ", "caldas" ∈ keys(lugares))
println("¿Cartagena NO pertenece a la lista de lugares? ", "cartagena" ∉ keys(lugares))
Dict{String,Any}("antioquia" => 5,"caldas" => 5,"supía" => "nunca","bogotá" => 2)
¿Cuántas veces has estado en caldas? 5
¿Cuántas veces has estado en supía? nunca
¿Caldas pertenece a la lista de lugares? true
¿Cartagena NO pertenece a la lista de lugares? true
[11]:
#Es posible definir el tipo de dato
municipios = Dict{String,Integer}("bello" => 1, "medellín" => 2,
"sabaneta" => 8, "medellín" => 5)
println(municipios)
println(municipios["medellín"])
Dict{String,Integer}("medellín" => 5,"bello" => 1,"sabaneta" => 8)
5
[41]:
# agregar miembros
municipios["copacabana"] = 23
municipios["rionegro"] = 21
println(municipios, "\n")
#Eliminar miembros
delete!(municipios, "rionegro")
println(municipios, "\n")
Dict{String,Integer}("medellín" => 5,"rionegro" => 21,"copacabana" => 23,"bello" => 1,"sabaneta" => 8)
Dict{String,Integer}("medellín" => 5,"copacabana" => 23,"bello" => 1,"sabaneta" => 8)
[32]:
# sind calcula la fn seno con grados
#
seno = Dict(string(i) => sind(i) for i = 0:5:360)
println("El seno de 90 grados es ", seno["90"])
println("El seno de 45 grados es ", get(seno, "45", 0))
println("El seno de 32 grados es ", get(seno, "32", nothing), "\n")
println(seno)
#for i = 0:5:360
# println(i)
#end
El seno de 90 grados es 1.0
El seno de 45 grados es 0.7071067811865476
El seno de 32 grados es nothing
Dict("320" => -0.6427876096865394,"65" => 0.9063077870366499,"155" => 0.42261826174069944,"335" => -0.42261826174069944,"75" => 0.9659258262890683,"50" => 0.766044443118978,"190" => -0.17364817766693036,"270" => -1.0,"290" => -0.9396926207859084,"115" => 0.9063077870366499,"340" => -0.3420201433256687,"10" => 0.17364817766693036,"250" => -0.9396926207859084,"120" => 0.8660254037844386,"230" => -0.766044443118978,"265" => -0.9961946980917455,"215" => -0.573576436351046,"305" => -0.8191520442889918,"255" => -0.9659258262890683,"25" => 0.42261826174069944,"160" => 0.3420201433256687,"275" => -0.9961946980917455,"5" => 0.08715574274765818,"280" => -0.984807753012208,"90" => 1.0,"175" => 0.08715574274765818,"225" => -0.7071067811865476,"205" => -0.42261826174069944,"195" => -0.25881904510252074,"315" => -0.7071067811865476,"150" => 0.5,"55" => 0.8191520442889918,"330" => -0.5,"285" => -0.9659258262890683,"310" => -0.766044443118978,"245" => -0.9063077870366499,"350" => -0.17364817766693036,"20" => 0.3420201433256687,"325" => -0.573576436351046,"80" => 0.984807753012208,"360" => 0.0,"125" => 0.8191520442889918,"110" => 0.9396926207859084,"185" => -0.08715574274765818,"70" => 0.9396926207859084,"165" => 0.25881904510252074,"140" => 0.6427876096865394,"300" => -0.8660254037844386,"0" => 0.0,"200" => -0.3420201433256687,"60" => 0.8660254037844386,"345" => -0.25881904510252074,"235" => -0.8191520442889918,"130" => 0.766044443118978,"260" => -0.984807753012208,"220" => -0.6427876096865394,"210" => -0.5,"35" => 0.573576436351046,"240" => -0.8660254037844386,"15" => 0.25881904510252074,"100" => 0.984807753012208,"40" => 0.6427876096865394,"170" => 0.17364817766693036,"45" => 0.7071067811865476,"295" => -0.9063077870366499,"145" => 0.573576436351046,"95" => 0.9961946980917455,"85" => 0.9961946980917455,"180" => 0.0,"135" => 0.7071067811865476,"355" => -0.08715574274765818,"105" => 0.9659258262890683,"30" => 0.5)
[36]:
# Diccionario de Simbolos
midiccionario = Dict(:x => 5, :y => 3, :z => 1)
println("El valor del simbolo z es: ", midiccionario[:z])
El valor del simbolo z es: 1
Tuplas (Similar a Python)¶
Estas son tipos de arreglo inmutables. Una vez creadas no es posible agregar o quitar elementos.
[96]:
amva = "Medellín","Envigado","Sabaneta","Caldas","Barbosa","Copacabana","La Estrella", "Bello", "Itagüí", "Girardota"
println(amva)
#tambien se pueden usar paréntesis
amvasur = ("Envigado","Sabaneta","Caldas","La Estrella", "Itagüí",)
println(amvasur)
#se puede usar el constructor tuple
mitupla = tuple(32, 'a', "venecia", pi)
println(mitupla)
#para crear una tupla con un solo elemento se debe incluir una coma al final
capitalAntioquia = ("Medellín",)
println(capitalAntioquia)
("Medellín", "Envigado", "Sabaneta", "Caldas", "Barbosa", "Copacabana", "La Estrella", "Bello", "Itagüí", "Girardota")
("Envigado", "Sabaneta", "Caldas", "La Estrella", "Itagüí")
(32, 'a', "venecia", π)
("Medellín",)