Julia-基本データ構造
10360 ワード
予知
この文章をご覧になれて嬉しいですが、時間を無駄にしないように、事前にお知らせしなければなりません.
これはただ私の学習ノートで、非常に浅くて乱れていて、深く浅くなくて、未来も更新し続けるかどうか分かりません.この文章はあなたが閲覧したり時間をつぶしたりするのに適しています.内容は大体順番に読むのに適しています.必要に応じて、私に連絡してください.
Juliaに含まれる基本的なデータ構造は次のとおりです.ここでは、次の順序で説明します.ユニット 辞書 配列 メタグループ
秩序ある要素の集合を括弧で囲んでメタグループを生成し、真ん中をカンマで区切って、基本的な使い方はPythonと変わらない.
Syntax:
例は次のとおりです.
Pythonとは異なり、Juliaは(1.0バージョン以上)拡張され、メタグループのコンポーネントに名前を付けることができます.
辞書
辞書を作成するには、
Syntax:
例は次のとおりです.
キー
メタグループと配列とは異なり、辞書の要素には前後の区別がなく、数字でインデックスできません.次の例では、Juliaがキーを「1」にしようとしたときの値を示します.
はいれつ
配列とメタグループには順序付きの集合が含まれていますが、配列は更新できます.中括弧で配列とメタグループを区別します.基本的な使い方はPythonと同じです.
Syntax:
プロンプトに戻る: であることを示す. であることを示す. が表示される.
JuliaにはPythonとは全然違うところがたくさんあります.例えば、1からインデックスを始めると、後で面倒が少なくなるかもしれませんが、誰が知っていますか.あなたは知っています.
例えば、数字配列に文字列を追加し、Pythonで簡単にできます.
しかし、Juliaでは、文字列配列
しかし、最初から要素が
Juliaの配列の次元情報はPythonよりも多く、次の2次元配列を作成します.外層の では、外層に含まれる各要素は
上記の例では、各次元内の要素の個数が同じである必要はない3 D配列を示しています.juliaはPythonと同様、デフォルトでは浅いコピーですが、深いコピーを行うには、内蔵の
以上がJuliaの基本的なデータ構造です.
転載先:https://juejin.im/post/5b78d6e3f265da43741e0b55
この文章をご覧になれて嬉しいですが、時間を無駄にしないように、事前にお知らせしなければなりません.
これはただ私の学習ノートで、非常に浅くて乱れていて、深く浅くなくて、未来も更新し続けるかどうか分かりません.この文章はあなたが閲覧したり時間をつぶしたりするのに適しています.内容は大体順番に読むのに適しています.必要に応じて、私に連絡してください.
Juliaに含まれる基本的なデータ構造は次のとおりです.ここでは、次の順序で説明します.
秩序ある要素の集合を括弧で囲んでメタグループを生成し、真ん中をカンマで区切って、基本的な使い方はPythonと変わらない.
Syntax:
(item1, item2, ...)
例は次のとおりです.
myfavoriteanimals = ("penguins", "cats", "sugargliders")
# ("penguins", "cats", "sugargliders")
myfavoriteanimals[1]
# "penguins"
myfavoriteanimals[1] = "otters" # ,
# ERROR: MethodError: no method matching setindex!(::Tuple{String,String,String}, ::String, ::Int64)
Pythonとは異なり、Juliaは(1.0バージョン以上)拡張され、メタグループのコンポーネントに名前を付けることができます.
myfavoriteanimals = (bird = "penguins", mammal = "cats", marsupial = "sugargliders")
# (bird = "penguins", mammal = "cats", marsupial = "sugargliders")
myfavoriteanimals[1]
# "penguins"
myfavoriteanimals.bird
# "penguins"
辞書
辞書を作成するには、
Dict()
関数を内蔵する必要があります.関数のパラメータは、空またはキー値ペアであってもよく、キー値ペアは矢印記号=>
を使用して関連付ける必要があります.Syntax:
Dict(key1 => value1, key2 => value2, ...)
例は次のとおりです.
myphonebook = Dict("Jenny" => "867-5309", "Ghostbusters" => "555-2368")
# Dict{String,String} with 2 entries:
# "Jenny" => "867-5309"
# "Ghostbusters" => "555-2368"
myphonebook["Jenny"]
# "867-5309"
myphonebook["Kramer"] = "555-FILK"
# "555-FILK"
myphonebook
# Dict{String,String} with 3 entries:
# "Jenny" => "867-5309"
# "Kramer" => "555-FILK"
# "Ghostbusters" => "555-2368"
キー
Kramer
を辞書から削除し、キーKramer
に対応する値を返します.pop!(myphonebook, "Kramer")
# "555-FILK"
myphonebook
# Dict{String,String} with 2 entries:
# "Jenny" => "867-5309"
# "Ghostbusters" => "555-2368"
メタグループと配列とは異なり、辞書の要素には前後の区別がなく、数字でインデックスできません.次の例では、Juliaがキーを「1」にしようとしたときの値を示します.
myphonebook[1]
# KeyError: key 1 not found
はいれつ
配列とメタグループには順序付きの集合が含まれていますが、配列は更新できます.中括弧で配列とメタグループを区別します.基本的な使い方はPythonと同じです.
Syntax:
[item1, item2, ...]
myfriends = ["Ted", "Robyn", "Barney", "Lily", "Marshall"]
# 5-element Array{String,1}:
# "Ted"
# "Robyn"
# "Barney"
# "Lily"
# "Marshall"
プロンプトに戻る:
5-element
は配列内の要素の総数が5 Array{String,1}
は現在配列String
は、配列内の各要素がString
型であることを示し、配列に複数のデータ型がある場合、any
1
はこれが1次元ベクトルであることを示しており、2次元マトリクスであればArray{String,2}
、3次元はArray{String,3}
である.このように、Juliaは多次元配列の次元情報を示す点でPythonよりも分かりやすく、後続に見ることができる.JuliaにはPythonとは全然違うところがたくさんあります.例えば、1からインデックスを始めると、後で面倒が少なくなるかもしれませんが、誰が知っていますか.あなたは知っています.
myfriends[0]
# ERROR: BoundsError: attempt to access 5-element Array{String,1} at index [0]
myfriends[1]
# "Ted"
例えば、数字配列に文字列を追加し、Pythonで簡単にできます.
a = [1,2,3]
a.append("1")
print(a)
# [1, 2, 3, '1']
しかし、Juliaでは、文字列配列
myfriends
に数字を挿入すると、エラーが発生します.push!(myfriends, 1)
# ERROR: MethodError: Cannot `convert` an object of type Int64 to an object of type String
しかし、最初から要素が
Any
の配列を新規作成すると、任意のタイプの挿入が完了します.a = [1,2,3,"3"]
# 4-element Array{Any,1}:
# 1
# 2
# 3
# "3"
pop!(a)
# "3"
a # , Any
# 3-element Array{Any,1}:
# 1
# 2
# 3
push!(a, "1")
# 5-element Array{Any,1}:
# 1
# 2
# 3
# "1"
Juliaの配列の次元情報はPythonよりも多く、次の2次元配列を作成します.
favorites = [["koobideh", "chocolate", "eggs"],["penguins", "cats", "sugargliders"]]
# 2-element Array{Array{String,1},1}:
# ["koobideh", "chocolate", "eggs"]
# ["penguins", "cats", "sugargliders"]
2-element Array{...}
は、最も外側の層が2つの元素を含むことを示し、含まれる元素はいずれもArray{String,1}
タイプであり、1
は最も外側の次元が1であることを示す.Array{String,1}
タイプであり、1
はそれらが1次元ベクトルであることを示し、要素の個数は知られていないが、要素タイプはString
である.numbers = [[[1], [2], [3]], [[4], [5]]]
# 2-element Array{Array{Array{Int64,1},1},1}:
# [[1], [2], [3]]
# [[4], [5]]
上記の例では、各次元内の要素の個数が同じである必要はない3 D配列を示しています.juliaはPythonと同様、デフォルトでは浅いコピーですが、深いコピーを行うには、内蔵の
copy
関数を直接使用します.a = [1,2,3]
# 3-element Array{Int64,1}:
# 1
# 2
# 3
b = a #
# 3-element Array{Int64,1}:
# 1
# 2
# 3
b[1] = 111
# 111
a,b
# ([111, 2, 3], [111, 2, 3])
c = copy(a) #
# 3-element Array{Int64,1}:
# 111
# 2
# 3
c[1] = 1
# 1
a, b ,c
# ([111, 2, 3], [111, 2, 3], [1, 2, 3])
以上がJuliaの基本的なデータ構造です.
転載先:https://juejin.im/post/5b78d6e3f265da43741e0b55