Collections and Data Structures
Iteration
Sıralı yineleme, iterate fonksiyonu ile uygulanır. Genel for döngüsü:
for i in iter # or "for i = iter"
# body
endlütfen çevrilecek metni yapıştırın.
next = iterate(iter)
while next !== nothing
(i, state) = next
# body
next = iterate(iter, state)
endstate nesnesi herhangi bir şey olabilir ve her iterable türü için uygun bir şekilde seçilmelidir. Özel bir iterable türü tanımlama hakkında daha fazla bilgi için manual section on the iteration interface'a bakın.
Base.iterate — Functioniterate(iter [, state]) -> Union{Nothing, Tuple{Any, Any}}İteratörü bir sonraki öğeyi elde etmek için ilerletin. Eğer hiçbir öğe kalmadıysa, nothing döndürülmelidir. Aksi takdirde, bir sonraki öğe ve yeni iterasyon durumu içeren 2-tuple döndürülmelidir.
Base.IteratorSize — TypeIteratorSize(itertype::Type) -> IteratorSizeBir iteratörün türü verildiğinde, aşağıdaki değerlerden birini döndür:
SizeUnknown()eğer uzunluk (öğe sayısı) önceden belirlenemiyorsa.HasLength()eğer sabit, sonlu bir uzunluk varsa.HasShape{N}()eğer bilinen bir uzunluk artı çok boyutlu şekil kavramı varsa (bir dizi gibi). Bu durumdaN, boyut sayısını vermeli veaxesfonksiyonu iteratör için geçerlidir.IsInfinite()eğer iteratör sonsuza kadar değerler üretiyorsa.
Varsayılan değer (bu fonksiyonu tanımlamayan iteratörler için) HasLength()'dır. Bu, çoğu iteratörün length uyguladığını varsaydığı anlamına gelir.
Bu özellik genellikle sonuçları için alanı önceden ayıran algoritmalar ile sonuçlarını kademeli olarak yeniden boyutlandıran algoritmalar arasında seçim yapmak için kullanılır.
julia> Base.IteratorSize(1:5)
Base.HasShape{1}()
julia> Base.IteratorSize((2,3))
Base.HasLength()Base.IteratorEltype — TypeIteratorEltype(itertype::Type) -> IteratorEltypeBir iteratörün türü verildiğinde, aşağıdaki değerlerden birini döndür:
EltypeUnknown()eğer iteratör tarafından üretilen elemanların türü önceden bilinmiyorsa.HasEltype()eğer eleman türü biliniyorsa veeltypeanlamlı bir değer döndürecekse.
HasEltype() varsayılan değerdir, çünkü iteratörlerin eltype uyguladığı varsayılmaktadır.
Bu özellik genellikle belirli bir sonuç türü önceden tahsis eden algoritmalar ile üretilen değerlerin türlerine dayalı olarak bir sonuç türü seçen algoritmalar arasında seçim yapmak için kullanılır.
julia> Base.IteratorEltype(1:5)
Base.HasEltype()Tamamıyla uygulanmıştır:
AbstractRangeUnitRangeTupleNumberAbstractArrayBitSetIdDictDictWeakKeyDictHerSatırAbstractStringSetPairNamedTuple
Constructors and Types
Base.AbstractRange — TypeAbstractRange{T} <: AbstractVector{T}T türünden elemanlara sahip lineer aralıklar için süper tür. UnitRange, LinRange ve diğer türler bunun alt türleridir.
Tüm alt türler step tanımlamalıdır. Bu nedenle LogRange AbstractRange'in bir alt türü değildir.
Base.OrdinalRange — TypeOrdinalRange{T, S} <: AbstractRange{T}T türünde elemanlara sahip sıralı aralıklar için süpertip. Adımlar her zaman oneunit tam katları olmalıdır ve T "kesirli" bir tür olmamalıdır; bu tür, oneunit'ten daha küçük değerler alamaz. Örneğin, Integer veya Date türleri uygunken, Float64 uygun değildir (çünkü bu tür, oneunit(Float64)'ten daha küçük değerleri temsil edebilir). UnitRange, StepRange ve diğer türler bunun alt türleridir.
Base.AbstractUnitRange — TypeAbstractUnitRange{T} <: OrdinalRange{T, T}Adım boyutu oneunit(T) olan ve T türünde elemanlar içeren aralıklar için süpertip. UnitRange ve diğer türler bunun alt türleridir.
Base.StepRange — TypeStepRange{T, S} <: OrdinalRange{T, S}T türünde ve S türünde boşlukları olan elemanlarla aralıklar. Her bir eleman arasındaki adım sabittir ve aralık, T türünde bir start ve stop ile S türünde bir step cinsinden tanımlanır. Ne T ne de S kayan nokta türleri olmalıdır. a:b:c sözdizimi, b != 0 ve a, b ve c tümü tam sayılar olduğunda bir StepRange oluşturur.
Örnekler
julia> collect(StepRange(1, Int8(2), 10))
5-element Vector{Int64}:
1
3
5
7
9
julia> typeof(StepRange(1, Int8(2), 10))
StepRange{Int64, Int8}
julia> typeof(1:3:6)
StepRange{Int64, Int64}Base.UnitRange — TypeUnitRange{T<:Gerçek}start ve stop türünde T ile parametrelenmiş bir aralık, start'tan başlayarak stop aşılana kadar 1 aralıklarla doldurulmuş elemanlarla. a:b sözdizimi, hem a hem de b Tam Sayı olduğunda bir UnitRange oluşturur.
Örnekler
julia> collect(UnitRange(2.3, 5.2))
3-element Vector{Float64}:
2.3
3.3
4.3
julia> typeof(1:10)
UnitRange{Int64}Base.LinRange — TypeLinRange{T,L}start ve stop arasında len lineer olarak dağıtılmış elemanlardan oluşan bir aralık. Aralıkların boyutunu kontrol eden len, bir Integer olmalıdır.
Örnekler
julia> LinRange(1.5, 5.5, 9)
9-element LinRange{Float64, Int64}:
1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5range kullanmaya kıyasla, doğrudan bir LinRange oluşturmak daha az yük getirmelidir ancak kayan nokta hatalarını düzeltmeye çalışmayacaktır:
julia> collect(range(-0.1, 0.3, length=5))
5-element Vector{Float64}:
-0.1
0.0
0.1
0.2
0.3
julia> collect(LinRange(-0.1, 0.3, 5))
5-element Vector{Float64}:
-0.1
-1.3877787807814457e-17
0.09999999999999999
0.19999999999999998
0.3Logaritmik olarak dağıtılmış noktalar için Logrange ile de bakabilirsiniz.
General Collections
Base.isempty — Functionisempty(collection) -> BoolBir koleksiyonun boş olup olmadığını belirleyin (hiç elemanı yoksa).
!!! uyarı isempty(itr) bir durum bilgisi olan itr yineleyicisinin bir sonraki elemanını tüketebilir, uygun bir Base.isdone(itr) yöntemi tanımlanmadıkça. Durum bilgisi olan yineleyiciler isdone uygulamalıdır, ancak herhangi bir yineleyici türünü desteklemesi gereken genel kod yazarken isempty kullanmaktan kaçınmak isteyebilirsiniz.
Örnekler
julia> isempty([])
true
julia> isempty([1 2 3])
falseisempty(condition)Koşul üzerinde bekleyen hiçbir görev yoksa true, aksi takdirde false döner.
Base.isdone — Functionisdone(itr, [state]) -> Union{Bool, Missing}Bu fonksiyon, yineleyici tamamlanması için hızlı bir yol ipucu sağlar. Bu, kullanıcıya sunulmayacaksa elemanların tüketilmesini önlemek isteyen durumlu yineleyiciler için yararlıdır (örneğin, isempty veya zip içinde tamamlanma kontrolü yaparken).
Bu özelliği kullanmak isteyen durumlu yineleyiciler, yineleyicinin tamamlanıp tamamlanmadığına bağlı olarak doğru/yanlış döndüren bir isdone yöntemi tanımlamalıdır. Durumsuz yineleyicilerin bu fonksiyonu uygulaması gerekmez.
Sonuç missing ise, çağıranlar kesin bir cevap elde etmek için iterate(x, state) === nothing hesaplamaya devam edebilir.
Base.empty! — Functionempty!(koleksiyon) -> koleksiyonBir koleksiyondan tüm elemanları kaldırın.
Örnekler
julia> A = Dict("a" => 1, "b" => 2)
Dict{String, Int64} with 2 entries:
"b" => 2
"a" => 1
julia> empty!(A);
julia> A
Dict{String, Int64}()empty!(c::Channel)Bir Kanal c'yi içsel tampon üzerinde empty! çağrısı yaparak boşaltın. Boş kanalı döndürün.
Base.length — Functionlength(collection) -> Tam sayıKoleksiyondaki eleman sayısını döndürür.
İndekslenebilir bir koleksiyonun son geçerli indeksini almak için lastindex kullanın.
Ayrıca bakınız: size, ndims, eachindex.
Örnekler
julia> length(1:5)
5
julia> length([1, 2, 3, 4])
4
julia> length([1 2; 3 4])
4Base.checked_length — FunctionBase.checked_length(r)length(r)'yi hesaplar, ancak sonuç Union{Integer(eltype(r)),Int} içine sığmadığında, uygun olduğunda taşma hatalarını kontrol edebilir.
Tamamıyla uygulanmıştır:
AbstractRangeUnitRangeTupleNumberAbstractArrayBitSetIdDictDictWeakKeyDictAbstractStringSetNamedTuple
Iterable Collections
Base.in — Functionin(item, collection) -> Bool
∈(item, collection) -> BoolBir öğenin verilen koleksiyonda olup olmadığını belirleyin; bu, öğenin koleksiyonu iterasyona tabi tutarak üretilen değerlerden biriyle == eşit olduğu anlamına gelir. Bir Bool değeri döndürün, ancak item missing ise veya collection item hariç missing içeriyorsa, bu durumda missing döndürülür (üç değerli mantık, any ve == işlevinin davranışını yansıtır).
Bazı koleksiyonlar biraz farklı bir tanıma sahiptir. Örneğin, Setler öğenin elemanlardan biriyle isequal olup olmadığını kontrol eder; Dictler key=>value çiftlerini arar ve key isequal kullanılarak karşılaştırılır.
Bir sözlükte bir anahtarın varlığını test etmek için haskey veya k in keys(dict) kullanın. Yukarıda bahsedilen koleksiyonlar için sonuç her zaman bir Bool'dur.
in.(items, collection) veya items .∈ collection ile yayılma (broadcasting) yaparken, hem item hem de collection üzerinde yayılma yapılır; bu genellikle istenen bir durum değildir. Örneğin, her iki argüman da vektörse (ve boyutlar eşleşiyorsa), sonuç, items koleksiyonundaki her değerin collection'daki karşılık gelen pozisyondaki değerde in olup olmadığını belirten bir vektördür. items'deki her değerin collection'da olup olmadığını belirten bir vektör almak için collection'ı bir demet (tuple) veya Ref içine sarın; şöyle: in.(items, Ref(collection)) veya items .∈ Ref(collection).
Ayrıca bakınız: ∉, insorted, contains, occursin, issubset.
Örnekler
julia> a = 1:3:20
1:3:19
julia> 4 in a
true
julia> 5 in a
false
julia> missing in [1, 2]
missing
julia> 1 in [2, missing]
missing
julia> 1 in [1, missing]
true
julia> missing in Set([1, 2])
false
julia> (1=>missing) in Dict(1=>10, 2=>20)
missing
julia> [1, 2] .∈ [2, 3]
2-element BitVector:
0
0
julia> [1, 2] .∈ ([2, 3],)
2-element BitVector:
0
1Base.:∉ — Function∉(öğe, koleksiyon) -> Bool
∌(koleksiyon, öğe) -> Bool∈ ve ∋'nin olumsuzlaması, yani öğenin koleksiyonda olmadığını kontrol eder.
items .∉ koleksiyon ile yayılma (broadcasting) yapıldığında, hem öğe hem de koleksiyon yayılır, bu genellikle istenen bir durum değildir. Örneğin, her iki argüman da vektörse (ve boyutlar eşleşiyorsa), sonuç, items koleksiyonundaki her değerin koleksiyondaki karşılık gelen pozisyondaki değerde olmadığını belirten bir vektördür. items'in koleksiyonda olmadığını belirten bir vektör almak için, koleksiyonu bir demet (tuple) veya Ref içine sarın, şöyle: items .∉ Ref(koleksiyon).
Örnekler
julia> 1 ∉ 2:4
true
julia> 1 ∉ 1:3
false
julia> [1, 2] .∉ [2, 3]
2-element BitVector:
1
1
julia> [1, 2] .∉ ([2, 3],)
2-element BitVector:
1
0Base.hasfastin — FunctionBase.hasfastin(T)collection::T içinde x ∈ collection hesaplamasının "hızlı" bir işlem olarak kabul edilip edilemeyeceğini belirleyin (tipik olarak sabit veya logaritmik karmaşıklık). hasfastin(x) = hasfastin(typeof(x)) tanımı, örneklerin türler yerine geçebilmesi için kolaylık sağlamak amacıyla verilmiştir. Ancak, tür argümanı kabul eden form yeni türler için tanımlanmalıdır.
hasfastin(T) için varsayılan değer, AbstractSet, AbstractDict ve AbstractRange alt türleri için true ve aksi takdirde false'dır.
Base.eltype — Functioneltype(type)Verilen type türündeki bir koleksiyonu iterasyona tabi tutarak üretilen elemanların türünü belirler. Sözlük türleri için bu, bir Pair{KeyType,ValType} olacaktır. eltype(x) = eltype(typeof(x)) tanımı, türler yerine örneklerin geçilebilmesi için kolaylık sağlamak amacıyla verilmiştir. Ancak, bir tür argümanı kabul eden form yeni türler için tanımlanmalıdır.
Ayrıca bakınız: keytype, typeof.
Örnekler
julia> eltype(fill(1f0, (2,2)))
Float32
julia> eltype(fill(0x1, (2,2)))
UInt8Base.indexin — Functionindexin(a, b)b içinde bir üye olan a'daki her değer için b'deki ilk indeksi içeren bir dizi döndürür. Çıktı dizisi, a'nın b'nin bir üyesi olmadığı yerlerde nothing içerir.
Ayrıca bakınız: sortperm, findfirst.
Örnekler
julia> a = ['a', 'b', 'c', 'b', 'd', 'a'];
julia> b = ['a', 'b', 'c'];
julia> indexin(a, b)
6-element Vector{Union{Nothing, Int64}}:
1
2
3
2
nothing
1
julia> indexin(b, a)
3-element Vector{Union{Nothing, Int64}}:
1
2
3Base.unique — Functionunique(itr)Koleksiyon itr'nin yalnızca benzersiz elemanlarını içeren bir dizi döndürür; bu elemanlar isequal ve hash tarafından belirlenir ve her bir eşdeğer eleman setinin ilk ortaya çıktığı sıraya göre sıralanır. Girişin eleman türü korunur.
Ayrıca bkz: unique!, allunique, allequal.
Örnekler
julia> unique([1, 2, 6, 2])
3-element Vector{Int64}:
1
2
6
julia> unique(Real[1, 1.0, 2])
2-element Vector{Real}:
1
2unique(f, itr)itr'den elde edilen her benzersiz değer için f uygulanarak bir değer içeren bir dizi döndürür.
Örnekler
julia> unique(x -> x^2, [1, -1, 3, -3, 4])
3-element Vector{Int64}:
1
3
4Bu işlevsellik, bir dizideki benzersiz elemanların ilk oluşumlarının indekslerini çıkarmak için de kullanılabilir:
julia> a = [3.1, 4.2, 5.3, 3.1, 3.1, 3.1, 4.2, 1.7];
julia> i = unique(i -> a[i], eachindex(a))
4-element Vector{Int64}:
1
2
3
8
julia> a[i]
4-element Vector{Float64}:
3.1
4.2
5.3
1.7
julia> a[i] == unique(a)
trueunique(A::AbstractArray; dims::Int)A'nın dims boyutu boyunca benzersiz bölgelerini döndürür.
Örnekler
julia> A = map(isodd, reshape(Vector(1:8), (2,2,2)))
2×2×2 Array{Bool, 3}:
[:, :, 1] =
1 1
0 0
[:, :, 2] =
1 1
0 0
julia> unique(A)
2-element Vector{Bool}:
1
0
julia> unique(A, dims=2)
2×1×2 Array{Bool, 3}:
[:, :, 1] =
1
0
[:, :, 2] =
1
0
julia> unique(A, dims=3)
2×2×1 Array{Bool, 3}:
[:, :, 1] =
1 1
0 0Base.unique! — Functionunique!(f, A::AbstractVector)A'dan f uygulanarak üretilen her benzersiz değer için A'dan bir değer seçer ve ardından değiştirilmiş A'yı döndürür.
Bu yöntem Julia 1.1 itibarıyla mevcuttur.
Örnekler
julia> unique!(x -> x^2, [1, -1, 3, -3, 4])
3-element Vector{Int64}:
1
3
4
julia> unique!(n -> n%3, [5, 1, 8, 9, 3, 4, 10, 7, 2, 6])
3-element Vector{Int64}:
5
1
9
julia> unique!(iseven, [2, 3, 5, 7, 9])
2-element Vector{Int64}:
2
3unique!(A::AbstractVector)isequal ve hash tarafından belirlenen tekrar eden öğeleri kaldırın, ardından değiştirilmiş A'yı döndürün. unique!, A'nın öğelerini meydana geldikleri sırayla döndürecektir. Eğer döndürülen verinin sırası ile ilgilenmiyorsanız, (sort!(A); unique!(A)) çağrısı, A'nın öğeleri sıralanabiliyorsa çok daha verimli olacaktır.
Örnekler
julia> unique!([1, 1, 1])
1-element Vector{Int64}:
1
julia> A = [7, 3, 2, 3, 7, 5];
julia> unique!(A)
4-element Vector{Int64}:
7
3
2
5
julia> B = [7, 6, 42, 6, 7, 42];
julia> sort!(B); # unique! sıralı verileri çok daha verimli bir şekilde işleyebilir.
julia> unique!(B)
3-element Vector{Int64}:
6
7
42Base.allunique — Functionallunique(itr) -> Bool
allunique(f, itr) -> Boolitr'den tüm değerlerin isequal ile karşılaştırıldığında farklı olması durumunda true döner. İkinci yöntem için ise [f(x) for x in itr]'nin tüm elemanlarının farklı olması durumunda true döner.
allunique(f, itr)'nin length(itr) kadar çağrılmayabileceğini unutmayın. Çağrıların kesin sayısı bir uygulama detayı olarak kabul edilir.
allunique, girdi sıralı olduğunda özel bir uygulama kullanabilir.
Ayrıca bakınız: unique, issorted, allequal.
allunique(f, itr) yöntemi en az Julia 1.11 gerektirir.
Örnekler
julia> allunique([1, 2, 3])
true
julia> allunique([1, 2, 1, 2])
false
julia> allunique(Real[1, 1.0, 2])
false
julia> allunique([NaN, 2.0, NaN, 4.0])
false
julia> allunique(abs, [1, -1, 2])
falseBase.allequal — Functionallequal(itr) -> Bool
allequal(f, itr) -> Boolitr'den alınan tüm değerler isequal ile karşılaştırıldığında eşitse true döner. İkinci yöntem içinse, [f(x) for x in itr]'nin tüm elemanları eşitse.
allequal(f, itr)'nin f'yi length(itr) kadar çağırmayabileceğini unutmayın. Çağrıların kesin sayısı bir uygulama detayı olarak kabul edilir.
Ayrıca bakınız: unique, allunique.
allequal fonksiyonu en az Julia 1.8 gerektirir.
allequal(f, itr) metodu en az Julia 1.11 gerektirir.
Örnekler
julia> allequal([])
true
julia> allequal([1])
true
julia> allequal([1, 1])
true
julia> allequal([1, 2])
false
julia> allequal(Dict(:a => 1, :b => 1))
false
julia> allequal(abs2, [1, -1])
trueBase.reduce — Methodreduce(op, itr; [init])Verilen koleksiyonu itr verilen ikili operatör op ile azaltın. Eğer sağlanmışsa, başlangıç değeri init op için nötr bir eleman olmalı ve boş koleksiyonlar için döndürülmelidir. init'in boş olmayan koleksiyonlar için kullanılıp kullanılmayacağı belirsizdir.
Boş koleksiyonlar için, init sağlamak gerekli olacaktır, bazı özel durumlar dışında (örneğin, op +, *, max, min, &, |'den biri olduğunda) Julia op'nin nötr elemanını belirleyebilir.
Belirli yaygın kullanılan operatörler için azaltmaların özel uygulamaları olabilir ve bunun yerine kullanılmalıdır: maximum(itr), minimum(itr), sum(itr), prod(itr), any(itr), all(itr). Belirli dizi dizilerini birleştirmek için reduce(vcat, arr) veya reduce(hcat, arr) çağrısını yaparak verimli yöntemler vardır.
Azaltmanın birleşim özelliği uygulamaya bağlıdır. Bu, - gibi birleşim özelliği taşımayan işlemleri kullanamayacağınız anlamına gelir çünkü reduce(-,[1,2,3])'ün (1-2)-3 veya 1-(2-3) olarak değerlendirilip değerlendirilmeyeceği belirsizdir. Garantili soldan veya sağdan birleşim özelliği için foldl veya foldr kullanın.
Bazı işlemler hata biriktirir. Paralellik, azaltmanın gruplar halinde yürütülmesi daha kolay olursa daha kolay olacaktır. Julia'nın gelecekteki sürümleri algoritmayı değiştirebilir. Sıralı bir koleksiyon kullanıyorsanız, elemanlar yeniden sıralanmaz.
Örnekler
julia> reduce(*, [2; 3; 4])
24
julia> reduce(*, [2; 3; 4]; init=-1)
-24Base.reduce — Methodreduce(f, A::AbstractArray; dims=:, [init])A'n boyutları boyunca f 2-argümanlı fonksiyonunu azalt. dims, azaltılacak boyutları belirten bir vektördür ve init anahtar kelime argümanı, azaltmalarda kullanılacak başlangıç değeridir. +, *, max ve min için init argümanı isteğe bağlıdır.
Azaltmanın birleşim özelliği uygulamaya bağlıdır; belirli bir birleşim özelliğine ihtiyacınız varsa, örneğin soldan sağa, kendi döngünüzü yazmalısınız veya foldl veya foldr kullanmayı düşünmelisiniz. reduce için belgeleri inceleyin.
Örnekler
julia> a = reshape(Vector(1:16), (4,4))
4×4 Matrix{Int64}:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
julia> reduce(max, a, dims=2)
4×1 Matrix{Int64}:
13
14
15
16
julia> reduce(max, a, dims=1)
1×4 Matrix{Int64}:
4 8 12 16Base.foldl — Methodfoldl(op, itr; [init])reduce ile benzer, ancak sol birleştirmenin garantisi vardır. Sağlanan takdirde, init anahtar kelime argümanı tam olarak bir kez kullanılacaktır. Genel olarak, boş koleksiyonlarla çalışmak için init sağlamanız gerekecektir.
Ayrıca bkz. mapfoldl, foldr, accumulate.
Örnekler
julia> foldl(=>, 1:4)
((1 => 2) => 3) => 4
julia> foldl(=>, 1:4; init=0)
(((0 => 1) => 2) => 3) => 4
julia> accumulate(=>, (1,2,3,4))
(1, 1 => 2, (1 => 2) => 3, ((1 => 2) => 3) => 4)Base.foldr — Methodfoldr(op, itr; [init])reduce ile benzer, ancak sağdan birleştirme garantisi vardır. Sağlanan init anahtar kelime argümanı tam olarak bir kez kullanılacaktır. Genel olarak, boş koleksiyonlarla çalışmak için init sağlamak gerekecektir.
Örnekler
julia> foldr(=>, 1:4)
1 => (2 => (3 => 4))
julia> foldr(=>, 1:4; init=0)
1 => (2 => (3 => (4 => 0)))Base.maximum — Functionmaximum(f, itr; [init])Herhangi bir itr elemanında f fonksiyonunu çağırarak elde edilen en büyük sonucu döndürür.
Boş itr için döndürülen değer init ile belirtilebilir. Bu, max için nötr bir eleman olmalıdır (yani, diğer herhangi bir elemandan küçük veya ona eşit olmalıdır) çünkü init'in boş olmayan koleksiyonlar için kullanılıp kullanılmayacağı belirtilmemiştir.
Anahtar kelime argümanı init, Julia 1.6 veya daha yenisini gerektirir.
Örnekler
julia> maximum(length, ["Julion", "Julia", "Jule"])
6
julia> maximum(length, []; init=-1)
-1
julia> maximum(sin, Real[]; init=-1.0) # iyi, çünkü sin'in çıktısı >= -1
-1.0maximum(itr; [init])Bir koleksiyondaki en büyük öğeyi döndürür.
Boş itr için döndürülen değer init ile belirtilebilir. Bu, max için nötr bir eleman olmalıdır (yani, diğer herhangi bir elemandan küçük veya ona eşit olmalıdır) çünkü init'in boş olmayan koleksiyonlar için kullanılıp kullanılmayacağı belirtilmemiştir.
Anahtar argümanı init, Julia 1.6 veya daha yenisini gerektirir.
Örnekler
julia> maximum(-20.5:10)
9.5
julia> maximum([1,2,3])
3
julia> maximum(())
HATA: ArgumentError: boş bir koleksiyon üzerinde azaltma yapmak izin verilmez; azaltıcıya `init` sağlamayı düşünün
Yığın izi:
[...]
julia> maximum((); init=-Inf)
-Infmaximum(A::AbstractArray; dims)Verilen boyutlar üzerinde bir dizinin maksimum değerini hesaplayın. İki veya daha fazla argümanın maksimumunu almak için max(a,b) fonksiyonuna da bakın; bu, dizilere max.(a,b) ile eleman bazında uygulanabilir.
Ayrıca bakınız: maximum!, extrema, findmax, argmax.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> maximum(A, dims=1)
1×2 Matrix{Int64}:
3 4
julia> maximum(A, dims=2)
2×1 Matrix{Int64}:
2
4maximum(f, A::AbstractArray; dims)Verilen boyutlar üzerinde bir dizi içindeki her bir eleman için f fonksiyonunu çağırarak maksimum değeri hesaplayın.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> maximum(abs2, A, dims=1)
1×2 Matrix{Int64}:
9 16
julia> maximum(abs2, A, dims=2)
2×1 Matrix{Int64}:
4
16Base.maximum! — Functionmaximum!(r, A)A'nın r'nin tekil boyutları üzerindeki maksimum değerini hesaplayın ve sonuçları r'ye yazın.
!!! uyarı Herhangi bir değiştirilmiş argümanın, başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> maximum!([1; 1], A)
2-element Vector{Int64}:
2
4
julia> maximum!([1 1], A)
1×2 Matrix{Int64}:
3 4Base.minimum — Functionminimum(f, itr; [init])Herhangi bir itr elemanında f fonksiyonunu çağırarak elde edilen en küçük sonucu döndürür.
Boş itr için döndürülen değer init ile belirtilebilir. Bu, min için nötr bir eleman olmalıdır (yani, diğer herhangi bir elemandan büyük veya ona eşit olmalıdır) çünkü init'in boş olmayan koleksiyonlar için kullanılıp kullanılmayacağı belirtilmemiştir.
Anahtar kelime argümanı init, Julia 1.6 veya daha yenisini gerektirir.
Örnekler
julia> minimum(length, ["Julion", "Julia", "Jule"])
4
julia> minimum(length, []; init=typemax(Int64))
9223372036854775807
julia> minimum(sin, Real[]; init=1.0) # iyi, çünkü sin'in çıktısı <= 1
1.0minimum(itr; [init])Bir koleksiyondaki en küçük öğeyi döndürür.
Boş itr için döndürülen değer init ile belirtilebilir. Bu, min için nötr bir eleman olmalıdır (yani, diğer herhangi bir elemandan büyük veya ona eşit olmalıdır) çünkü init'in boş olmayan koleksiyonlar için kullanılıp kullanılmayacağı belirsizdir.
Anahtar argümanı init, Julia 1.6 veya daha yenisini gerektirir.
Örnekler
julia> minimum(-20.5:10)
-20.5
julia> minimum([1,2,3])
1
julia> minimum([])
HATA: ArgumentError: boş bir koleksiyon üzerinde azaltma yapmak mümkün değildir; azaltıcıya `init` sağlamayı düşünün
Stacktrace:
[...]
julia> minimum([]; init=Inf)
Infminimum(A::AbstractArray; dims)Verilen boyutlar üzerinde bir dizinin minimum değerini hesaplar. İki veya daha fazla argümanın minimumunu almak için min(a,b) fonksiyonuna da bakın; bu, dizilere min.(a,b) ile eleman bazında uygulanabilir.
Ayrıca bakınız: minimum!, extrema, findmin, argmin.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> minimum(A, dims=1)
1×2 Matrix{Int64}:
1 2
julia> minimum(A, dims=2)
2×1 Matrix{Int64}:
1
3minimum(f, A::AbstractArray; dims)Verilen boyutlar üzerinde bir dizi içindeki her bir eleman üzerinde f fonksiyonunu çağırarak minimum değeri hesaplar.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> minimum(abs2, A, dims=1)
1×2 Matrix{Int64}:
1 4
julia> minimum(abs2, A, dims=2)
2×1 Matrix{Int64}:
1
9Base.minimum! — Functionminimum!(r, A)A'nın r'nin tekil boyutları üzerindeki minimum değerini hesaplayın ve sonuçları r'ye yazın.
!!! uyarı Herhangi bir değiştirilmiş argümanın başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> minimum!([1; 1], A)
2-element Vector{Int64}:
1
3
julia> minimum!([1 1], A)
1×2 Matrix{Int64}:
1 2Base.extrema — Functionextrema(itr; [init]) -> (mn, mx)Tek bir geçişte hem minimum mn hem de maksimum mx öğesini hesaplayın ve bunları 2-tuple olarak döndürün.
Boş itr için döndürülen değer init ile belirtilebilir. Bu, min ve max için nötr öğeler olan bir 2-tuple olmalıdır (yani, diğer herhangi bir öğeden büyük/küçük veya eşit olan). Sonuç olarak, itr boş olduğunda döndürülen (mn, mx) tuple'ı mn ≥ mx koşulunu sağlayacaktır. init belirtildiğinde, boş olmayan itr için bile kullanılabilir.
Anahtar kelime argümanı init, Julia 1.8 veya daha yeni bir sürüm gerektirir.
Örnekler
julia> extrema(2:10)
(2, 10)
julia> extrema([9,pi,4.5])
(3.141592653589793, 9.0)
julia> extrema([]; init = (Inf, -Inf))
(Inf, -Inf)extrema(f, itr; [init]) -> (mn, mx)itr'deki her bir elemana uygulanan f'nin hem minimum mn hem de maksimum mx değerlerini hesaplayın ve bunları 2-tuple olarak döndürün. itr üzerinde yalnızca bir geçiş yapılır.
Boş itr için döndürülen değer init ile belirtilebilir. Bu, min ve max için nötr elemanlar olan bir 2-tuple olmalıdır (yani, diğer herhangi bir elemandan büyük/küçük veya eşit olan). Bu, boş olmayan koleksiyonlar için kullanılır. Not: Bu, boş itr için döndürülen değerin (mn, mx)'nin mn ≥ mx koşulunu sağladığını, oysa boş olmayan itr için mn ≤ mx koşulunu sağladığını ima eder. Bu "paradoksal" ama yine de beklenen bir sonuçtur.
Bu yöntem Julia 1.2 veya daha yenisini gerektirir.
Anahtar argüman init, Julia 1.8 veya daha yenisini gerektirir.
Örnekler
julia> extrema(sin, 0:π)
(0.0, 0.9092974268256817)
julia> extrema(sin, Real[]; init = (1.0, -1.0)) # iyi, çünkü -1 ≤ sin(::Real) ≤ 1
(1.0, -1.0)extrema(A::AbstractArray; dims) -> Array{Tuple}Verilen boyutlar üzerinde bir dizinin minimum ve maksimum elemanlarını hesaplar.
Ayrıca bakınız: minimum, maximum, extrema!.
Örnekler
julia> A = reshape(Vector(1:2:16), (2,2,2))
2×2×2 Array{Int64, 3}:
[:, :, 1] =
1 5
3 7
[:, :, 2] =
9 13
11 15
julia> extrema(A, dims = (1,2))
1×1×2 Array{Tuple{Int64, Int64}, 3}:
[:, :, 1] =
(1, 7)
[:, :, 2] =
(9, 15)extrema(f, A::AbstractArray; dims) -> Array{Tuple}Verilen boyutlardaki A'nın her bir elemanına uygulanan f'nin minimum ve maksimumunu hesaplar.
Bu yöntem Julia 1.2 veya daha yenisini gerektirir.
Base.extrema! — Functionextrema!(r, A)A'nın r'nin tekil boyutları üzerindeki minimum ve maksimum değerini hesaplayın ve sonuçları r'ye yazın.
!!! uyarı Herhangi bir değiştirilmiş argümanın başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Bu yöntem Julia 1.8 veya daha yenisini gerektirir.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> extrema!([(1, 1); (1, 1)], A)
2-element Vector{Tuple{Int64, Int64}}:
(1, 2)
(3, 4)
julia> extrema!([(1, 1);; (1, 1)], A)
1×2 Matrix{Tuple{Int64, Int64}}:
(1, 3) (2, 4)Base.argmax — Functionargmax(r::AbstractRange)Aralıklar birden fazla maksimum elemana sahip olabilir. Bu durumda argmax maksimum bir indeks döndürecektir, ancak mutlaka ilk olanı değil.
argmax(f, domain)f(x)'in maksimize edildiği domain'den bir değer x döndürür. Eğer f(x) için birden fazla maksimum değer varsa, ilki bulunacaktır.
domain boş olmayan bir iterable olmalıdır.
Değerler isless ile karşılaştırılır.
Bu yöntem Julia 1.7 veya daha yenisini gerektirir.
Örnekler
julia> argmax(abs, -10:5)
-10
julia> argmax(cos, 0:π/2:2π)
0.0argmax(itr)Bir koleksiyondaki en büyük elemanın indeksini veya anahtarını döndürür. Eğer birden fazla en büyük eleman varsa, ilk olanı döndürülür.
Koleksiyon boş olmamalıdır.
İndeksler, keys(itr) ve pairs(itr) tarafından döndürülenlerle aynı türdendir.
Değerler isless ile karşılaştırılır.
Ayrıca bakınız: argmin, findmax.
Örnekler
julia> argmax([8, 0.1, -9, pi])
1
julia> argmax([1, 7, 7, 6])
2
julia> argmax([1, 7, 7, NaN])
4argmax(A; dims) -> indicesBir dizi girişi için, verilen boyutlar üzerindeki maksimum elemanların indekslerini döndürün. NaN, diğer tüm değerlerden (istisna: missing) daha büyük olarak kabul edilir.
Örnekler
julia> A = [1.0 2; 3 4]
2×2 Matrix{Float64}:
1.0 2.0
3.0 4.0
julia> argmax(A, dims=1)
1×2 Matrix{CartesianIndex{2}}:
CartesianIndex(2, 1) CartesianIndex(2, 2)
julia> argmax(A, dims=2)
2×1 Matrix{CartesianIndex{2}}:
CartesianIndex(1, 2)
CartesianIndex(2, 2)Base.argmin — Functionargmin(r::AbstractRange)Aralıklar birden fazla minimal elemana sahip olabilir. Bu durumda argmin, minimal bir indeks döndürecektir, ancak mutlaka ilk olanı değil.
argmin(f, domain)f(x)'in en küçük olduğu domain'den bir değer x döndürür. Eğer f(x) için birden fazla en küçük değer varsa, ilki bulunacaktır.
domain boş olmayan bir yineleyici olmalıdır.
NaN, missing hariç tüm diğer değerlerden daha küçük olarak kabul edilir.
Bu yöntem Julia 1.7 veya daha yenisini gerektirir.
Örnekler
julia> argmin(sign, -10:5)
-10
julia> argmin(x -> -x^3 + x^2 - 10, -5:5)
5
julia> argmin(acos, 0:0.1:1)
1.0argmin(itr)Bir koleksiyondaki en küçük elemanın indeksini veya anahtarını döndürür. Eğer birden fazla en küçük eleman varsa, ilk olanı döndürülür.
Koleksiyon boş olmamalıdır.
İndeksler, keys(itr) ve pairs(itr) tarafından döndürülenlerle aynı türdedir.
NaN, missing hariç tüm diğer değerlerden daha küçük olarak kabul edilir.
Ayrıca bakınız: argmax, findmin.
Örnekler
julia> argmin([8, 0.1, -9, pi])
3
julia> argmin([7, 1, 1, 6])
2
julia> argmin([7, 1, 1, NaN])
4argmin(A; dims) -> indicesBir dizi girişi için, verilen boyutlar üzerinde minimum elemanların indekslerini döndürün. NaN, missing hariç tüm diğer değerlerden daha küçük olarak kabul edilir.
Örnekler
julia> A = [1.0 2; 3 4]
2×2 Matrix{Float64}:
1.0 2.0
3.0 4.0
julia> argmin(A, dims=1)
1×2 Matrix{CartesianIndex{2}}:
CartesianIndex(1, 1) CartesianIndex(1, 2)
julia> argmin(A, dims=2)
2×1 Matrix{CartesianIndex{2}}:
CartesianIndex(1, 1)
CartesianIndex(2, 1)Base.findmax — Functionfindmax(f, domain) -> (f(x), index)Bir değer çiftini döndürür; bu değer, f'nin kodomaininde (çıkışları) ve domain'deki (girişleri) karşılık gelen değerin indeksini veya anahtarını içerir, böylece f(x) maksimize edilir. Birden fazla maksimum nokta varsa, ilk olanı döndürülecektir.
domain, keys destekleyen boş olmayan bir iterable olmalıdır. İndeksler, keys(domain) tarafından döndürülenlerle aynı türdedir.
Değerler isless ile karşılaştırılır.
Bu yöntem Julia 1.7 veya daha yenisini gerektirir.
Örnekler
julia> findmax(identity, 5:9)
(9, 5)
julia> findmax(-, 1:10)
(-1, 1)
julia> findmax(first, [(1, :a), (3, :b), (3, :c)])
(3, 2)
julia> findmax(cos, 0:π/2:2π)
(1.0, 1)findmax(itr) -> (x, index)Koleksiyon itr'nin en büyük elemanını ve indeksini veya anahtarını döndürür. Eğer birden fazla en büyük eleman varsa, ilk olanı döndürülür. Değerler isless ile karşılaştırılır.
İndeksler, keys(itr) ve pairs(itr) tarafından döndürülenlerle aynı türdendir.
Ayrıca bakınız: findmin, argmax, maximum.
Örnekler
julia> findmax([8, 0.1, -9, pi])
(8.0, 1)
julia> findmax([1, 7, 7, 6])
(7, 2)
julia> findmax([1, 7, 7, NaN])
(NaN, 4)findmax(A; dims) -> (maxval, index)Bir dizi girişi için, verilen boyutlar üzerinde maksimumun değerini ve indeksini döndürür. NaN, diğer tüm değerlerden (boş değerler hariç) daha büyük olarak kabul edilir.
Örnekler
julia> A = [1.0 2; 3 4]
2×2 Matrix{Float64}:
1.0 2.0
3.0 4.0
julia> findmax(A, dims=1)
([3.0 4.0], CartesianIndex{2}[CartesianIndex(2, 1) CartesianIndex(2, 2)])
julia> findmax(A, dims=2)
([2.0; 4.0;;], CartesianIndex{2}[CartesianIndex(1, 2); CartesianIndex(2, 2);;])findmax(f, A; dims) -> (f(x), index)Bir dizi girişi için, verilen boyutlar üzerinde f'yi maksimize eden karşılık gelen değerin kodomandaki değerini ve indeksini döndürür.
Örnekler
julia> A = [-1.0 1; -0.5 2]
2×2 Matrix{Float64}:
-1.0 1.0
-0.5 2.0
julia> findmax(abs2, A, dims=1)
([1.0 4.0], CartesianIndex{2}[CartesianIndex(1, 1) CartesianIndex(2, 2)])
julia> findmax(abs2, A, dims=2)
([1.0; 4.0;;], CartesianIndex{2}[CartesianIndex(1, 1); CartesianIndex(2, 2);;])Base.findmin — Functionfindmin(f, domain) -> (f(x), index)Bir değer çiftini döndürür; bu değer, f'nin kodomaininde (çıkışları) ve f'ye karşılık gelen değerin domain'deki (girişleri) indeks veya anahtarıdır, böylece f(x) en aza indirilir. Birden fazla minimal nokta varsa, ilk olanı döndürülecektir.
domain boş olmayan bir iterable olmalıdır.
İndeksler, keys(domain) ve pairs(domain) tarafından döndürülenlerle aynı türdedir.
NaN, missing hariç tüm diğer değerlerden daha küçük olarak kabul edilir.
Bu yöntem Julia 1.7 veya daha yenisini gerektirir.
Örnekler
julia> findmin(identity, 5:9)
(5, 1)
julia> findmin(-, 1:10)
(-10, 10)
julia> findmin(first, [(2, :a), (2, :b), (3, :c)])
(2, 1)
julia> findmin(cos, 0:π/2:2π)
(-1.0, 3)findmin(itr) -> (x, index)Koleksiyon itr'nin en küçük elemanını ve indeksini veya anahtarını döndürür. Eğer birden fazla en küçük eleman varsa, ilk olanı döndürülür. NaN, missing hariç tüm diğer değerlerden daha küçük olarak kabul edilir.
İndeksler, keys(itr) ve pairs(itr) tarafından döndürülenlerle aynı türdedir.
Ayrıca bakınız: findmax, argmin, minimum.
Örnekler
julia> findmin([8, 0.1, -9, pi])
(-9.0, 3)
julia> findmin([1, 7, 7, 6])
(1, 1)
julia> findmin([1, 7, 7, NaN])
(NaN, 4)findmin(A; dims) -> (minval, index)Bir dizi girişi için, verilen boyutlar üzerinde minimumun değerini ve indeksini döndürür. NaN, missing hariç tüm diğer değerlerden daha küçük olarak kabul edilir.
Örnekler
julia> A = [1.0 2; 3 4]
2×2 Matrix{Float64}:
1.0 2.0
3.0 4.0
julia> findmin(A, dims=1)
([1.0 2.0], CartesianIndex{2}[CartesianIndex(1, 1) CartesianIndex(1, 2)])
julia> findmin(A, dims=2)
([1.0; 3.0;;], CartesianIndex{2}[CartesianIndex(1, 1); CartesianIndex(2, 1);;])findmin(f, A; dims) -> (f(x), index)Dizi girişi için, verilen boyutlar üzerinde f'yi minimize eden karşılık gelen değerin kodomainedeki değerini ve indeksini döndürür.
Örnekler
julia> A = [-1.0 1; -0.5 2]
2×2 Matrix{Float64}:
-1.0 1.0
-0.5 2.0
julia> findmin(abs2, A, dims=1)
([0.25 1.0], CartesianIndex{2}[CartesianIndex(2, 1) CartesianIndex(1, 2)])
julia> findmin(abs2, A, dims=2)
([1.0; 0.25;;], CartesianIndex{2}[CartesianIndex(1, 1); CartesianIndex(2, 1);;])Base.findmax! — Functionfindmax!(rval, rind, A) -> (maxval, index)A'nın maksimumunu ve rval ve rind'eki karşılık gelen lineer indeksleri bulur ve sonuçları rval ve rind'e kaydeder. NaN, missing hariç tüm diğer değerlerden daha büyük olarak kabul edilir.
Herhangi bir değiştirilmiş argümanın, başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Base.findmin! — Functionfindmin!(rval, rind, A) -> (minval, index)A'n minimum'unu ve rval ve rind'in tekil boyutları boyunca karşılık gelen lineer indeksini bulur ve sonuçları rval ve rind'e kaydeder. NaN, missing hariç tüm diğer değerlerden daha küçük olarak kabul edilir.
!!! uyarı Herhangi bir değiştirilmiş argümanın, başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Base.sum — Functionsum(f, itr; [init])itr'nin her bir elemanında f fonksiyonunu çağırmanın sonuçlarını toplayın.
Dönüş tipi, sistem kelime boyutundan daha küçük işaretli tam sayılar için Int, işaretsiz tam sayılar için ise UInt'dir. Tüm diğer argümanlar için, tüm argümanların terfi ettirildiği ortak bir dönüş tipi bulunur.
Boş itr için döndürülecek değer init ile belirtilebilir. Bu, toplama kimliği (yani sıfır) olmalıdır çünkü init'in boş olmayan koleksiyonlar için kullanılıp kullanılmadığı belirtilmemiştir.
Anahtar kelime argümanı init, Julia 1.6 veya daha yenisini gerektirir.
Örnekler
julia> sum(abs2, [2; 3; 4])
29Küçük tam sayı el tipi olan diziler için sum(A) ve reduce(+, A) arasındaki önemli farkı not edin:
julia> sum(Int8[100, 28])
128
julia> reduce(+, Int8[100, 28])
-128İlk durumda, tam sayılar sistem kelime boyutuna genişletilir ve bu nedenle sonuç 128'dir. İkincisinde, böyle bir genişletme gerçekleşmez ve tam sayı taşması -128 sonucunu verir.
sum(itr; [init])Bir koleksiyondaki tüm elemanların toplamını döndürür.
Dönüş tipi, sistem kelime boyutundan daha küçük işaretli tam sayılar için Int, işaretsiz tam sayılar için ise UInt'dir. Diğer tüm argümanlar için, tüm argümanların terfi ettirildiği ortak bir dönüş tipi bulunur.
Boş itr için döndürülen değer init ile belirtilebilir. Bu, toplama kimliği (yani sıfır) olmalıdır çünkü init'in boş olmayan koleksiyonlar için kullanılıp kullanılmadığı belirtilmemiştir.
Anahtar kelime argümanı init, Julia 1.6 veya daha yeni bir sürüm gerektirir.
Ayrıca bakınız: reduce, mapreduce, count, union.
Örnekler
julia> sum(1:20)
210
julia> sum(1:20; init = 0.0)
210.0sum(A::AbstractArray; dims)Verilen boyutlar üzerinde bir dizinin elemanlarını toplayın.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> sum(A, dims=1)
1×2 Matrix{Int64}:
4 6
julia> sum(A, dims=2)
2×1 Matrix{Int64}:
3
7sum(f, A::AbstractArray; dims)Bir dizinin her bir elemanına f fonksiyonunu çağırarak elde edilen sonuçları verilen boyutlar üzerinde toplayın.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> sum(abs2, A, dims=1)
1×2 Matrix{Int64}:
10 20
julia> sum(abs2, A, dims=2)
2×1 Matrix{Int64}:
5
25Base.sum! — Functionsum!(r, A)A'nın elemanlarını r'nin tekil boyutları boyunca toplayın ve sonuçları r'ye yazın.
!!! uyarı Herhangi bir değiştirilmiş argümanın, başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> sum!([1; 1], A)
2-element Vector{Int64}:
3
7
julia> sum!([1 1], A)
1×2 Matrix{Int64}:
4 6Base.prod — Functionprod(f, itr; [init])itr'deki her bir elemana uygulanan f'nin çarpımını döndürür.
Dönüş tipi, sistem kelime boyutundan daha küçük işaretli tam sayılar için Int, işaretsiz tam sayılar için ise UInt'dir. Tüm diğer argümanlar için, tüm argümanların terfi ettirildiği ortak bir dönüş tipi bulunur.
Boş itr için döndürülen değer init ile belirtilebilir. Bu, çarpan kimliği (yani bir) olmalıdır çünkü init'in boş olmayan koleksiyonlar için kullanılıp kullanılmadığı belirtilmemiştir.
Anahtar kelime argümanı init, Julia 1.6 veya daha yenisini gerektirir.
Örnekler
julia> prod(abs2, [2; 3; 4])
576prod(itr; [init])Bir koleksiyonun tüm elemanlarının çarpımını döndürür.
Dönüş tipi, sistem kelime boyutundan daha küçük işaretli tam sayılar için Int, işaretsiz tam sayılar için ise UInt'dir. Diğer tüm argümanlar için, tüm argümanların terfi ettirildiği ortak bir dönüş tipi bulunur.
Boş itr için döndürülen değer init ile belirtilebilir. Bu, çarpan kimliği (yani bir) olmalıdır, çünkü init'in boş olmayan koleksiyonlar için kullanılıp kullanılmadığı belirtilmemiştir.
Anahtar kelime argümanı init, Julia 1.6 veya daha yeni bir sürüm gerektirir.
Ayrıca bakınız: reduce, cumprod, any.
Örnekler
julia> prod(1:5)
120
julia> prod(1:5; init = 1.0)
120.0prod(A::AbstractArray; dims)Verilen boyutlar üzerinde bir dizinin elemanlarını çarpın.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> prod(A, dims=1)
1×2 Matrix{Int64}:
3 8
julia> prod(A, dims=2)
2×1 Matrix{Int64}:
2
12prod(f, A::AbstractArray; dims)Verilen boyutlar üzerinde bir dizinin her bir elemanına f fonksiyonunu çağırarak elde edilen sonuçları çarpın.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> prod(abs2, A, dims=1)
1×2 Matrix{Int64}:
9 64
julia> prod(abs2, A, dims=2)
2×1 Matrix{Int64}:
4
144Base.prod! — Functionprod!(r, A)A'nın elemanlarını r'nin tekil boyutları boyunca çarpın ve sonuçları r'ye yazın.
!!! uyarı Herhangi bir değiştirilmiş argümanın, başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> prod!([1; 1], A)
2-element Vector{Int64}:
2
12
julia> prod!([1 1], A)
1×2 Matrix{Int64}:
3 8Base.any — Methodany(itr) -> BoolBir boolean koleksiyonundaki herhangi bir elemanın true olup olmadığını test eder, itr içinde ilk true değeri bulunduğunda true döner (kısa devre). false üzerinde kısa devre yapmak için all kullanın.
Girdi missing değerleri içeriyorsa, tüm eksik olmayan değerler false ise (veya eşdeğer olarak, girdi true değeri içermiyorsa) missing döner, üç değerli mantık izlenir.
Ayrıca bakınız: all, count, sum, |, , ||.
Örnekler
julia> a = [true,false,false,true]
4-element Vector{Bool}:
1
0
0
1
julia> any(a)
true
julia> any((println(i); v) for (i, v) in enumerate(a))
1
true
julia> any([missing, true])
true
julia> any([false, missing])
missingBase.any — Methodany(p, itr) -> Boolitr'deki herhangi bir öğe için p'nin true döndürüp döndürmediğini belirleyin, p'nin true döndürdüğü itr'deki ilk öğe ile karşılaşıldığında true döndürerek (kısa devre). false için kısa devre yapmak için all kullanın.
Girdi missing değerleri içeriyorsa, tüm eksik olmayan değerler false ise (veya eşdeğer olarak, girdi true değeri içermiyorsa) missing döndürün, üç değerli mantık izleyerek.
Örnekler
julia> any(i->(4<=i<=6), [3,5,7])
true
julia> any(i -> (println(i); i > 3), 1:10)
1
2
3
4
true
julia> any(i -> i > 0, [1, missing])
true
julia> any(i -> i > 0, [-1, missing])
missing
julia> any(i -> i > 0, [-1, 0])
falseBase.any! — Functionany!(r, A)A içindeki herhangi bir değerin r'nin tekil boyutları boyunca true olup olmadığını test eder ve sonuçları r'ye yazar.
!!! uyarı Herhangi bir değiştirilmiş argümanın, başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Örnekler
julia> A = [true false; true false]
2×2 Matrix{Bool}:
1 0
1 0
julia> any!([1; 1], A)
2-element Vector{Int64}:
1
1
julia> any!([1 1], A)
1×2 Matrix{Int64}:
1 0Base.all — Methodall(itr) -> BoolBir boolean koleksiyonundaki tüm elemanların true olup olmadığını test eder, itr içinde ilk false değeri ile karşılaşıldığında false döner (kısa devre). true üzerinde kısa devre yapmak için any kullanın.
Girdi missing değerleri içeriyorsa, tüm eksik olmayan değerler true ise (veya eşdeğer olarak, girdi false değeri içermiyorsa) missing döner, üç değerli mantık izlenir.
Ayrıca bakınız: all!, any, count, &, , &&, allunique.
Örnekler
julia> a = [true,false,false,true]
4-element Vector{Bool}:
1
0
0
1
julia> all(a)
false
julia> all((println(i); v) for (i, v) in enumerate(a))
1
2
false
julia> all([missing, false])
false
julia> all([true, missing])
missingBase.all — Methodall(p, itr) -> Boolitr'deki tüm elemanlar için p'nin true döndürüp döndürmediğini belirleyin, p'nin false döndürdüğü ilk öğe ile karşılaşıldığında false döndürerek (kısa devre). true için kısa devre yapmak için any kullanın.
Girdi missing değerleri içeriyorsa, tüm eksik olmayan değerler true ise (veya eşdeğer olarak, girdi false değeri içermiyorsa) missing döndürün, üç değerli mantık izleyerek.
Örnekler
julia> all(i->(4<=i<=6), [4,5,6])
true
julia> all(i -> (println(i); i < 3), 1:10)
1
2
3
false
julia> all(i -> i > 0, [1, missing])
missing
julia> all(i -> i > 0, [-1, missing])
false
julia> all(i -> i > 0, [1, 2])
trueBase.all! — Functionall!(r, A)A içindeki tüm değerlerin r'nin tekil boyutları boyunca true olup olmadığını test eder ve sonuçları r'ye yazar.
Herhangi bir değiştirilmiş argümanın başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Örnekler
julia> A = [true false; true false]
2×2 Matrix{Bool}:
1 0
1 0
julia> all!([1; 1], A)
2-element Vector{Int64}:
0
0
julia> all!([1 1], A)
1×2 Matrix{Int64}:
1 0Base.count — Functioncount([f=identity,] itr; init=0) -> Integeritr içinde f fonksiyonunun true döndürdüğü elemanların sayısını sayar. f atlandığında, itr içindeki true elemanların sayısını sayar (bu, boolean değerlerden oluşan bir koleksiyon olmalıdır). init isteğe bağlı olarak saymaya başlanacak değeri belirtir ve dolayısıyla çıktı türünü de belirler.
init anahtar kelimesi Julia 1.6'da eklendi.
Örnekler
julia> count(i->(4<=i<=6), [2,3,4,5,6])
3
julia> count([true, false, true, true])
3
julia> count(>(3), 1:7, init=0x03)
0x07count(
pattern::Union{AbstractChar,AbstractString,AbstractPattern},
string::AbstractString;
overlap::Bool = false,
)pattern için string içinde eşleşme sayısını döndürür. Bu, length(findall(pattern, string)) çağrısına eşdeğerdir ancak daha verimlidir.
Eğer overlap=true ise, eşleşen diziler orijinal string içinde indeksleri örtüşecek şekilde izin verilir, aksi takdirde ayrı karakter aralıklarından olmalıdır.
Bu yöntem en az Julia 1.3 gerektirir.
Bir karakterin desen olarak kullanılması en az Julia 1.7 gerektirir.
Örnekler
julia> count('a', "JuliaLang")
2
julia> count(r"a(.)a", "cabacabac", overlap=true)
3
julia> count(r"a(.)a", "cabacabac")
2count([f=identity,] A::AbstractArray; dims=:)A içindeki f'nin true döndürdüğü elemanların sayısını verilen boyutlar üzerinde sayar.
dims anahtar kelimesi Julia 1.5'te eklendi.
init anahtar kelimesi Julia 1.6'da eklendi.
Örnekler
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> count(<=(2), A, dims=1)
1×2 Matrix{Int64}:
1 1
julia> count(<=(2), A, dims=2)
2×1 Matrix{Int64}:
2
0Base.foreach — Functionforeach(f, c...) -> Hiçbir şeyFonksiyon f'yi iterable c'nin her bir elemanı üzerinde çağırır. Birden fazla iterable argümanı için, f eleman bazında çağrılır ve herhangi bir iterator bittiğinde iterasyon durur.
foreach, f'nin sonuçlarının gerekli olmadığı durumlarda map yerine kullanılmalıdır; örneğin foreach(println, array).
Örnekler
julia> tri = 1:3:7; res = Int[];
julia> foreach(x -> push!(res, x^2), tri)
julia> res
3-element Vector{Int64}:
1
16
49
julia> foreach((x, y) -> println(x, " ile ", y), tri, 'a':'z')
1 ile a
4 ile b
7 ile cBase.map — Functionmap(f, c...) -> koleksiyonKoleksiyon c'yi her bir elemana f uygulayarak dönüştür. Birden fazla koleksiyon argümanı için, f'yi eleman bazında uygula ve herhangi biri tükenene kadar dur.
Ayrıca bkz. map!, foreach, mapreduce, mapslices, zip, Iterators.map.
Örnekler
julia> map(x -> x * 2, [1, 2, 3])
3-element Vector{Int64}:
2
4
6
julia> map(+, [1, 2, 3], [10, 20, 30, 400, 5000])
3-element Vector{Int64}:
11
22
33map(f, A::AbstractArray...) -> N-diziAynı ndims boyutlarına sahip çok boyutlu diziler üzerinde işlem yaparken, hepsinin aynı axes boyutlarına sahip olması gerekir ve sonuç da öyle olacaktır.
Ayrıca, boyutları uyuşmayan dizilere izin veren broadcast fonksiyonuna da bakın.
Örnekler
julia> map(//, [1 2; 3 4], [4 3; 2 1])
2×2 Matris{Rasyonel{Int64}}:
1//4 2//3
3//2 4//1
julia> map(+, [1 2; 3 4], zeros(2,1))
HATA: BoyutUyumsuzluğu
julia> map(+, [1 2; 3 4], [1,10,100,1000], zeros(3,1)) # 3. dizi tükenene kadar iterasyon yapar
3-elemanlı Vektör{Float64}:
2.0
13.0
102.0Base.map! — Functionmap!(function, destination, collection...)map gibi, ancak sonucu yeni bir koleksiyona değil destination'a kaydeder. destination, en küçük koleksiyon kadar büyük olmalıdır.
Herhangi bir değiştirilmiş argümanın, diğer herhangi bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Ayrıca bakınız: map, foreach, zip, copyto!.
Örnekler
julia> a = zeros(3);
julia> map!(x -> x * 2, a, [1, 2, 3]);
julia> a
3-element Vector{Float64}:
2.0
4.0
6.0
julia> map!(+, zeros(Int, 5), 100:999, 1:3)
5-element Vector{Int64}:
101
103
105
0
0map!(f, values(dict::AbstractDict))dict'i val'dan f(val)'e dönüştürerek değiştirir. dict'in türünün değiştirilemeyeceğini unutmayın: eğer f(val) dict'in değer türünün bir örneği değilse, mümkünse değer türüne dönüştürülecek ve aksi takdirde bir hata verecektir.
map!(f, values(dict::AbstractDict)) Julia 1.2 veya daha yenisini gerektirir.
Örnekler
julia> d = Dict(:a => 1, :b => 2)
Dict{Symbol, Int64} with 2 entries:
:a => 1
:b => 2
julia> map!(v -> v-1, values(d))
ValueIterator for a Dict{Symbol, Int64} with 2 entries. Values:
0
1Base.mapreduce — Methodmapreduce(f, op, itrs...; [init])Fonksiyonu f'yi itrs içindeki her bir eleman(lar)a uygular ve ardından sonucu ikili fonksiyon op ile azaltır. Eğer sağlanmışsa, init op için nötr bir eleman olmalı ve boş koleksiyonlar için döndürülmelidir. init'in boş olmayan koleksiyonlar için kullanılıp kullanılmadığı belirsizdir. Genel olarak, boş koleksiyonlarla çalışmak için init sağlamak gerekecektir.
mapreduce fonksiyonel olarak reduce(op, map(f, itr); init=init) çağrısına eşdeğerdir, ancak genellikle daha hızlı çalışır çünkü ara bir koleksiyon oluşturulmasına gerek yoktur. reduce ve map için belgeleri inceleyin.
Birden fazla iteratör ile mapreduce Julia 1.2 veya daha yenisini gerektirir.
Örnekler
julia> mapreduce(x->x^2, +, [1:3;]) # == 1 + 4 + 9
14Azaltmanın birleşim özelliği uygulamaya bağlıdır. Ayrıca, bazı uygulamalar itr içinde birden fazla kez görünen elemanlar için f'nin döndürdüğü değeri yeniden kullanabilir. Her değer için f'nin çağrılmasını garanti etmek ve soldan veya sağdan birleşim özelliği için mapfoldl veya mapfoldr kullanın.
Base.mapfoldl — Methodmapfoldl(f, op, itr; [init])mapreduce ile benzer, ancak foldl gibi sol birleştirmenin garantisi vardır. Eğer sağlanmışsa, anahtar kelime argümanı init tam olarak bir kez kullanılacaktır. Genel olarak, boş koleksiyonlarla çalışmak için init sağlamanız gerekecektir.
Base.mapfoldr — Methodmapfoldr(f, op, itr; [init])foldr gibi, ancak sağdan birleştirme garantisi ile, mapreduce gibi. Eğer sağlanırsa, anahtar kelime argümanı init tam olarak bir kez kullanılacaktır. Genel olarak, boş koleksiyonlarla çalışmak için init sağlamanız gerekecektir.
Base.first — Functionfirst(coll)Bir yineleyici koleksiyonun ilk öğesini alır. Boş olsa bile bir AbstractRange başlangıç noktasını döndürür.
Ayrıca bakınız: only, firstindex, last.
Örnekler
julia> first(2:2:10)
2
julia> first([1; 2; 3; 4])
1first(itr, n::Integer)İterable koleksiyon itr'nin ilk n elemanını alır veya itr yeterince uzun değilse daha az eleman alır.
Ayrıca bakınız: startswith, Iterators.take.
Bu yöntem en az Julia 1.6 gerektirir.
Örnekler
julia> first(["foo", "bar", "qux"], 2)
2-element Vector{String}:
"foo"
"bar"
julia> first(1:6, 10)
1:6
julia> first(Bool[], 1)
Bool[]first(s::AbstractString, n::Integer)s'ninci n karakterden oluşan bir dize döndürür.
Örnekler
julia> first("∀ϵ≠0: ϵ²>0", 0)
""
julia> first("∀ϵ≠0: ϵ²>0", 1)
"∀"
julia> first("∀ϵ≠0: ϵ²>0", 3)
"∀ϵ≠"Base.last — Functionlast(coll)Sıralı bir koleksiyonun son elemanını alır, eğer O(1) zamanında hesaplanabiliyorsa. Bu, son indeksi almak için lastindex çağrılarak gerçekleştirilir. Boş olsa bile bir AbstractRange son noktasını döndürür.
Ayrıca first, endswith ile de bakabilirsiniz.
Örnekler
julia> last(1:2:10)
9
julia> last([1; 2; 3; 4])
4last(itr, n::Integer)İterable koleksiyon itr'nin son n elemanını alır veya itr yeterince uzun değilse daha az eleman alır.
Bu yöntem en az Julia 1.6 gerektirir.
Örnekler
julia> last(["foo", "bar", "qux"], 2)
2-element Vector{String}:
"bar"
"qux"
julia> last(1:6, 10)
1:6
julia> last(Float64[], 1)
Float64[]last(s::AbstractString, n::Integer)s'nin son n karakterinden oluşan bir dize alır.
Örnekler
julia> last("∀ϵ≠0: ϵ²>0", 0)
""
julia> last("∀ϵ≠0: ϵ²>0", 1)
"0"
julia> last("∀ϵ≠0: ϵ²>0", 3)
"²>0"Base.front — Functionfront(x::Tuple)::Tuplex'in son bileşeni hariç tüm bileşenlerini içeren bir Tuple döndürür.
Örnekler
julia> Base.front((1,2,3))
(1, 2)
julia> Base.front(())
HATA: ArgumentError: Boş bir tuple üzerinde front çağrısı yapılamaz.Base.tail — Functiontail(x::Tuple)::Tuplex'in ilk bileşeni hariç tüm bileşenlerini içeren bir Tuple döndürür.
Ayrıca bakınız: front, rest, first, Iterators.peel.
Örnekler
julia> Base.tail((1,2,3))
(2, 3)
julia> Base.tail(())
HATA: ArgumentError: Boş bir tuple üzerinde tail çağrısı yapılamaz.Base.step — Functionstep(r)Bir AbstractRange nesnesinin adım boyutunu alır.
Örnekler
julia> step(1:10)
1
julia> step(1:2:10)
2
julia> step(2.5:0.3:10.9)
0.3
julia> step(range(2.5, stop=10.9, length=85))
0.1Base.collect — Methodcollect(collection)Bir koleksiyondan veya iteratörden tüm öğelerin bir Array'ini döndürür. Sözlükler için, key=>value Pair çiftlerinin bir Vector'ını döndürür. Argüman dizi benzeri veya HasShape özelliğine sahip bir iteratör ise, sonuç argümanla aynı şekle ve boyut sayısına sahip olacaktır.
Comprehensions tarafından bir generator expression 'ı bir Array'e dönüştürmek için kullanılır. Bu nedenle, generator'lar üzerinde, collect çağırmak yerine köşeli parantez notasyonu kullanılabilir, ikinci örneğe bakın.
Örnekler
Bir UnitRange{Int64} koleksiyonundan öğeleri toplayın:
julia> collect(1:3)
3-element Vector{Int64}:
1
2
3Bir generator'dan öğeleri toplayın (aynı çıktı [x^2 for x in 1:3] ile):
julia> collect(x^2 for x in 1:3)
3-element Vector{Int64}:
1
4
9Base.collect — Methodcollect(element_type, collection)Verilen eleman türüne sahip bir Array döndürür, bu da bir koleksiyondaki veya yineleyicideki tüm öğeleri içerir. Sonuç, collection ile aynı şekle ve boyut sayısına sahiptir.
Örnekler
julia> collect(Float64, 1:2:5)
3-element Vector{Float64}:
1.0
3.0
5.0Base.filter — Functionfilter(f, a)f'nin false olduğu elemanları çıkararak a koleksiyonunun bir kopyasını döndürür. f fonksiyonuna bir argüman geçirilir.
a'nın bir demet olarak desteklenmesi en az Julia 1.4 gerektirir.
Ayrıca bakınız: filter!, Iterators.filter.
Örnekler
julia> a = 1:10
1:10
julia> filter(isodd, a)
5-element Vector{Int64}:
1
3
5
7
9filter(f)f fonksiyonunu kullanarak argümanlarını filtreleyen bir fonksiyon oluşturun, yani x -> filter(f, x) fonksiyonuna eşdeğer bir fonksiyon.
Dönen fonksiyon Base.Fix1{typeof(filter)} türündedir ve özel yöntemler uygulamak için kullanılabilir.
Örnekler
julia> (1, 2, Inf, 4, NaN, 6) |> filter(isfinite)
(1, 2, 4, 6)
julia> map(filter(iseven), [1:3, 2:4, 3:5])
3-element Vector{Vector{Int64}}:
[2]
[2, 4]
[4]Bu yöntem en az Julia 1.9 gerektirir.
filter(f, d::AbstractDict)f'nin false olduğu elemanları kaldırarak d'nin bir kopyasını döndürür. f fonksiyonuna key=>value çiftleri geçirilir.
Örnekler
julia> d = Dict(1=>"a", 2=>"b")
Dict{Int64, String} with 2 entries:
2 => "b"
1 => "a"
julia> filter(p->isodd(p.first), d)
Dict{Int64, String} with 1 entry:
1 => "a"filter(f, itr::SkipMissing{<:AbstractArray})Verilen SkipMissing iteratörü tarafından sarılmış diziye benzer bir vektör döndürür, ancak tüm eksik öğeler ve f'nin false döndürdüğü öğeler kaldırılır.
Bu yöntem Julia 1.2 veya daha yenisini gerektirir.
Örnekler
julia> x = [1 2; missing 4]
2×2 Matrix{Union{Missing, Int64}}:
1 2
missing 4
julia> filter(isodd, skipmissing(x))
1-element Vector{Int64}:
1Base.filter! — Functionfilter!(f, a)Koleksiyonu a güncelleyin, f'nin false olduğu elemanları kaldırın. f fonksiyonuna bir argüman geçilir.
Örnekler
julia> filter!(isodd, Vector(1:10))
5-element Vector{Int64}:
1
3
5
7
9filter!(f, d::AbstractDict)d'yi güncelleyin, f'nin false olduğu elemanları kaldırın. f fonksiyonu anahtar=>değer çiftlerini alır.
Örnekler
julia> d = Dict(1=>"a", 2=>"b", 3=>"c")
Dict{Int64, String} with 3 entries:
2 => "b"
3 => "c"
1 => "a"
julia> filter!(p->isodd(p.first), d)
Dict{Int64, String} with 2 entries:
3 => "c"
1 => "a"Base.replace — Methodreplace(A, old_new::Pair...; [count::Integer])Koleksiyonu A'nın bir kopyasını döndürür; burada, old=>new çiftlerinden her biri için, old'un tüm örnekleri new ile değiştirilir. Eşitlik isequal kullanılarak belirlenir. Eğer count belirtilmişse, o zaman toplamda en fazla count örneği değiştirilir.
Sonucun eleman tipi, A'nın eleman tipi ve çiftlerdeki new değerlerinin tiplerine dayanarak terfi kullanılarak seçilir (bkz. promote_type). Eğer count atlanırsa ve A'nın eleman tipi bir Union ise, sonuçtaki eleman tipi, farklı bir tipteki değerlerle değiştirilen tekil tipleri içermeyecektir: örneğin, Union{T,Missing} eğer missing bir değerle değiştirilirse T haline gelecektir.
Ayrıca bkz. replace!, splice!, delete!, insert!.
Bir Tuple'ın elemanlarını değiştirmek için 1.7 sürümü gereklidir.
Örnekler
julia> replace([1, 2, 1, 3], 1=>0, 2=>4, count=2)
4-element Vector{Int64}:
0
4
1
3
julia> replace([1, missing], missing=>0)
2-element Vector{Int64}:
1
0Base.replace — Methodreplace(new::Union{Function, Type}, A; [count::Integer])A'yi, A'deki her x değeri new(x) ile değiştirildiği bir kopyasını döndürün. Eğer count belirtilmişse, o zaman toplamda en fazla count değeri değiştirilir (değiştirmeler new(x) !== x olarak tanımlanır).
Bir Tuple'ın elemanlarını değiştirmek için 1.7 sürümü gereklidir.
Örnekler
julia> replace(x -> isodd(x) ? 2x : x, [1, 2, 3, 4])
4-element Vector{Int64}:
2
2
6
4
julia> replace(Dict(1=>2, 3=>4)) do kv
first(kv) < 3 ? first(kv)=>3 : kv
end
Dict{Int64, Int64} with 2 entries:
3 => 4
1 => 3Base.replace! — Functionreplace!(A, eski_yeni::Pair...; [sayı::Integer])Her eski=>yeni çifti için eski_yeni içinde, koleksiyon A'daki tüm eski örneklerini yeni ile değiştirin. Eşitlik isequal kullanılarak belirlenir. Eğer sayı belirtilmişse, o zaman toplamda en fazla sayı örneğini değiştirin. Ayrıca replace'ye de bakın.
Örnekler
julia> replace!([1, 2, 1, 3], 1=>0, 2=>4, sayı=2)
4-element Vector{Int64}:
0
4
1
3
julia> replace!(Set([1, 2, 3]), 1=>0)
Set{Int64} with 3 elements:
0
2
3replace!(new::Union{Function, Type}, A; [count::Integer])Koleksiyondaki her bir x elemanını new(x) ile değiştirir. Eğer count belirtilmişse, toplamda en fazla count değerini değiştirir (değiştirmeler new(x) !== x olarak tanımlanır).
Örnekler
julia> replace!(x -> isodd(x) ? 2x : x, [1, 2, 3, 4])
4-element Vector{Int64}:
2
2
6
4
julia> replace!(Dict(1=>2, 3=>4)) do kv
first(kv) < 3 ? first(kv)=>3 : kv
end
Dict{Int64, Int64} with 2 entries:
3 => 4
1 => 3
julia> replace!(x->2x, Set([3, 6]))
Set{Int64} with 2 elements:
6
12Base.rest — FunctionBase.rest(collection[, itr_state])Belirli bir yineleme durumu itr_state ile collection'ın sonunu almak için genel bir işlev. Eğer collection kendisi bir Tuple ise bir Tuple, collection bir AbstractArray ise AbstractVector'ın bir alt türü, collection bir AbstractString ise AbstractString'in bir alt türü ve aksi takdirde Iterators.rest(collection[, itr_state])'ye geri dönen bir rastgele yineleyici döner.
Kullanıcı tanımlı koleksiyon türleri için, son pozisyondaki atama sırasında yutma davranışını özelleştirmek için aşırı yüklenebilir, örneğin a, b... = collection.
Base.rest en az Julia 1.6 gerektirir.
Ayrıca bakınız: first, Iterators.rest, Base.split_rest.
Örnekler
julia> a = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> first, state = iterate(a)
(1, 2)
julia> first, Base.rest(a, state)
(1, [3, 2, 4])Base.split_rest — FunctionBase.split_rest(collection, n::Int[, itr_state]) -> (rest_but_n, last_n)Belirli bir yineleme durumu itr_state'den başlayarak collection'ın kuyruğunu ayırmak için genel bir işlev. İki yeni koleksiyonun bir demetini döndürür. İlk koleksiyon, son n eleman hariç kuyruğun tüm elemanlarını içerirken, ikinci koleksiyonu oluşturur.
İlk koleksiyonun türü genellikle Base.rest türünü takip eder, ancak yedek durum tembel değildir, bunun yerine bir vektöre hevesle toplanır.
Kullanıcı tanımlı koleksiyon türleri için, a, b..., c = collection gibi son konumda atama sırasında yutma davranışını özelleştirmek için aşırı yüklenebilir.
Base.split_rest, en az Julia 1.9 gerektirir.
Ayrıca bakınız: Base.rest.
Örnekler
julia> a = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> first, state = iterate(a)
(1, 2)
julia> first, Base.split_rest(a, 1, state)
(1, ([3, 2], [4]))Indexable Collections
Base.getindex — Functiongetindex(koleksiyon, anahtar...)Verilen anahtar veya indeks içindeki koleksiyonda saklanan değer(ler)i alır. a[i,j,...] sözdizimi derleyici tarafından getindex(a, i, j, ...) olarak dönüştürülür.
Ayrıca bkz. get, keys, eachindex.
Örnekler
julia> A = Dict("a" => 1, "b" => 2)
Dict{String, Int64} with 2 entries:
"b" => 2
"a" => 1
julia> getindex(A, "a")
1Base.setindex! — Functionsetindex!(collection, value, key...)Verilen değeri bir koleksiyondaki belirtilen anahtar veya indeks içinde saklayın. a[i,j,...] = x sözdizimi derleyici tarafından (setindex!(a, x, i, j, ...); x) şeklinde dönüştürülür.
Örnekler
julia> a = Dict("a"=>1)
Dict{String, Int64} with 1 entry:
"a" => 1
julia> setindex!(a, 2, "b")
Dict{String, Int64} with 2 entries:
"b" => 2
"a" => 1Base.firstindex — Functionfirstindex(koleksiyon) -> Tam Sayı
firstindex(koleksiyon, d) -> Tam Sayıkoleksiyon'un ilk indeksini döndürür. Eğer d verilmişse, koleksiyon'un d boyutundaki ilk indeksini döndürür.
A[begin] ve A[1, begin] sözdizimleri sırasıyla A[firstindex(A)] ve A[1, firstindex(A, 2)]'ye dönüşür.
Ayrıca bakınız: first, axes, lastindex, nextind.
Örnekler
julia> firstindex([1,2,4])
1
julia> firstindex(rand(3,4,5), 2)
1Base.lastindex — Functionlastindex(koleksiyon) -> Tam Sayı
lastindex(koleksiyon, d) -> Tam Sayıkoleksiyon'un son indeksini döndürür. Eğer d verilmişse, koleksiyon'un d boyutundaki son indeksini döndürür.
A[end] ve A[end, end] sözdizimleri sırasıyla A[lastindex(A)] ve A[lastindex(A, 1), lastindex(A, 2)]'ye dönüşür.
Ayrıca bkz: axes, firstindex, eachindex, prevind.
Örnekler
julia> lastindex([1,2,4])
3
julia> lastindex(rand(3,4,5), 2)
4Tamamıyla uygulanmıştır:
ArrayBitArrayAbstractArrayAlt Dizi
Kısmen uygulanmıştır:
Dictionaries
Dict standart sözlük. Uygulaması, anahtar için hash ve eşitliği belirlemek için isequal hash fonksiyonunu kullanır. Özel türler için bu iki fonksiyonu tanımlayarak, bir hash tablosunda nasıl saklandıklarını geçersiz kılın.
IdDict özel bir hash tablosudur; burada anahtarlar her zaman nesne kimlikleridir.
WeakKeyDict bir hash tablosu uygulamasıdır; anahtarlar nesnelere zayıf referanslar olduğundan, bir hash tablosunda referans gösterilse bile çöp toplayıcı tarafından toplanabilirler. Dict gibi, hashing için hash ve eşitlik için isequal kullanır, ancak Dict'ten farklı olarak, ekleme sırasında anahtarları dönüştürmez.
Dict çift nesneleri ile => kullanarak oluşturulabilir ve bir 4d61726b646f776e2e436f64652822222c2022446963742229_40726566 yapıcısına geçirilebilir: Dict("A"=>1, "B"=>2). Bu çağrı, anahtarlar ve değerlerden tür bilgilerini çıkarmaya çalışacaktır (yani bu örnek bir Dict{String, Int64} oluşturur). Türleri açıkça belirtmek için Dict{KeyType,ValueType}(...) sözdizimini kullanın. Örneğin, Dict{String,Int32}("A"=>1, "B"=>2).
Sözlükler, jeneratörlerle de oluşturulabilir. Örneğin, Dict(i => f(i) for i = 1:10).
Verilen bir sözlük D için D[x] sözdizimi, x anahtarının değerini döndürür (eğer varsa) veya bir hata fırlatır ve D[x] = y sözdizimi, D içinde x => y anahtar-değer çiftini saklar (varsa x anahtarı için mevcut olan değeri değiştirir). D[...] için birden fazla argüman, demetlere dönüştürülür; örneğin, D[x,y] sözdizimi D[(x,y)] ile eşdeğerdir, yani (x,y) demeti ile anahtarlanan değere atıfta bulunur.
Base.AbstractDict — TypeAbstractDict{K, V}Anahtarları K türünde ve değerleri V türünde olan sözlük benzeri türler için üst tür. Dict, IdDict ve diğer türler bunun alt türleridir. Bir AbstractDict{K, V}, Pair{K, V}'nin bir yineleyicisi olmalıdır.
Base.Dict — TypeDict([itr])Dict{K,V}() bir K türünde anahtarlar ve V türünde değerler içeren bir hash tablosu oluşturur. Anahtarlar isequal ile karşılaştırılır ve hash ile hashlenir.
Tek bir iterable argüman verildiğinde, argümandan üretilen 2-tuple (anahtar,değer) çiftlerinden oluşan bir Dict oluşturur.
Örnekler
julia> Dict([("A", 1), ("B", 2)])
Dict{String, Int64} with 2 entries:
"B" => 2
"A" => 1Alternatif olarak, bir dizi çift argüman da geçirilebilir.
julia> Dict("A"=>1, "B"=>2)
Dict{String, Int64} with 2 entries:
"B" => 2
"A" => 1!!! uyarı Anahtarların değiştirilebilir olmasına izin verilir, ancak eğer saklanan anahtarları değiştirirseniz, hash tablosu içsel olarak tutarsız hale gelebilir; bu durumda Dict düzgün çalışmayacaktır. Anahtarları değiştirmek zorundaysanız IdDict alternatif olabilir.
Base.IdDict — TypeIdDict([itr])IdDict{K,V}() bir hash tablosu oluşturur ve objectid hash olarak ve === eşitlik olarak kullanılır; anahtarlar K türünde ve değerler V türündedir. Daha fazla yardım için Dict ve bunun set versiyonu için IdSet kısmına bakın.
Aşağıdaki örnekte, Dict anahtarları tümü isequal olduğundan, aynı şekilde hashlenirler ve bu nedenle üzerine yazılırlar. IdDict ise nesne kimliğine göre hashler ve böylece 3 farklı anahtarı korur.
Örnekler
julia> Dict(true => "yes", 1 => "no", 1.0 => "maybe")
Dict{Real, String} with 1 entry:
1.0 => "maybe"
julia> IdDict(true => "yes", 1 => "no", 1.0 => "maybe")
IdDict{Any, String} with 3 entries:
true => "yes"
1.0 => "maybe"
1 => "no"Base.WeakKeyDict — TypeWeakKeyDict([itr])WeakKeyDict() bir hash tablosu oluşturur; burada anahtarlar, bir hash tablosunda referans verilse bile çöp toplayıcı tarafından toplanabilecek nesnelere zayıf referanslardır.
Daha fazla yardım için Dict bölümüne bakın. Not: Dict'ın aksine, WeakKeyDict anahtarları ekleme sırasında dönüştürmez, çünkü bu, anahtar nesnesinin eklemeden önce hiçbir yerde referans verilmediği anlamına gelir.
Ayrıca bkz. WeakRef.
Base.ImmutableDict — TypeImmutableDictImmutableDict, birçok bireysel ekleme ile oluşturulan küçük sözlükler için optimal olan, değiştirilemez bir bağlı liste olarak uygulanmış bir sözlüktür. Bir değeri kaldırmak mümkün değildir, ancak aynı anahtarla yeni bir değer ekleyerek kısmen geçersiz kılınabilir ve gizlenebilir.
ImmutableDict(KV::Pair)key => value çifti için ImmutableDict içinde yeni bir giriş oluşturun
- bu belirli kombinasyonun özellikler kümesinde olup olmadığını görmek için
(key => value) in dictkullanın - belirli bir anahtar için en son değeri almak için
get(dict, key, default)kullanın
Base.PersistentDict — TypePersistentDictPersistentDict, bir hash array mapped trie olarak uygulanmış bir sözlüktür ve kalıcılık gerektiğinde optimaldir; her işlem, önceki sözlükten ayrı yeni bir sözlük döndürür, ancak temel uygulama alan verimlidir ve birden fazla ayrı sözlük arasında depolama paylaşabilir.
Bir IdDict gibi davranır.
PersistentDict(KV::Pair)Örnekler
julia> dict = Base.PersistentDict(:a=>1)
Base.PersistentDict{Symbol, Int64} with 1 entry:
:a => 1
julia> dict2 = Base.delete(dict, :a)
Base.PersistentDict{Symbol, Int64}()
julia> dict3 = Base.PersistentDict(dict, :a=>2)
Base.PersistentDict{Symbol, Int64} with 1 entry:
:a => 2Base.haskey — Functionhaskey(koleksiyon, anahtar) -> BoolBir koleksiyonun belirli bir anahtar için bir eşleme olup olmadığını belirleyin.
Örnekler
julia> D = Dict('a'=>2, 'b'=>3)
Dict{Char, Int64} with 2 entries:
'a' => 2
'b' => 3
julia> haskey(D, 'a')
true
julia> haskey(D, 'c')
falseBase.get — Functionget(collection, key, default)Verilen anahtar için saklanan değeri döndürür veya anahtar için bir eşleme yoksa verilen varsayılan değeri döndürür.
Tuple'lar ve sayılar için, bu fonksiyon en az Julia 1.7 gerektirir.
Örnekler
julia> d = Dict("a"=>1, "b"=>2);
julia> get(d, "a", 3)
1
julia> get(d, "c", 3)
3get(f::Union{Function, Type}, collection, key)Verilen anahtar için saklanan değeri döndürür, eğer anahtar için bir eşleme yoksa f() döndürür. Varsayılan değeri sözlükte saklamak için get! kullanın.
Bu, do blok sözdizimi kullanılarak çağrılması amaçlanmıştır.
get(dict, key) do
# varsayılan değer burada hesaplanır
time()
endBase.get! — Functionget!(koleksiyon, anahtar, varsayılan)Verilen anahtar için saklanan değeri döndür, ya da eğer anahtar için bir eşleme yoksa, anahtar => varsayılan sakla ve varsayılanı döndür.
Örnekler
julia> d = Dict("a"=>1, "b"=>2, "c"=>3);
julia> get!(d, "a", 5)
1
julia> get!(d, "d", 4)
4
julia> d
Dict{String, Int64} with 4 entries:
"c" => 3
"b" => 2
"a" => 1
"d" => 4get!(f::Union{Function, Type}, collection, key)Verilen anahtar için saklanan değeri döndürün veya anahtar için bir eşleme yoksa, key => f() saklayın ve f() döndürün.
Bu, do bloğu sözdizimi kullanılarak çağrılması amaçlanmıştır.
Örnekler
julia> squares = Dict{Int, Int}();
julia> function get_square!(d, i)
get!(d, i) do
i^2
end
end
get_square! (generic function with 1 method)
julia> get_square!(squares, 2)
4
julia> squares
Dict{Int64, Int64} with 1 entry:
2 => 4Base.getkey — Functiongetkey(koleksiyon, anahtar, varsayılan)Anahtar anahtar ile eşleşen anahtarı koleksiyon içinde varsa döndür, aksi takdirde varsayılan döndür.
Örnekler
julia> D = Dict('a'=>2, 'b'=>3)
Dict{Char, Int64} with 2 entries:
'a' => 2
'b' => 3
julia> getkey(D, 'a', 1)
'a': ASCII/Unicode U+0061 (kategori Ll: Harf, küçük)
julia> getkey(D, 'd', 'a')
'a': ASCII/Unicode U+0061 (kategori Ll: Harf, küçük)Base.delete! — Functiondelete!(koleksiyon, anahtar)Verilen anahtar için bir koleksiyondaki eşlemeyi siler, varsa, ve koleksiyonu döner.
Örnekler
julia> d = Dict("a"=>1, "b"=>2)
Dict{String, Int64} with 2 entries:
"b" => 2
"a" => 1
julia> delete!(d, "b")
Dict{String, Int64} with 1 entry:
"a" => 1
julia> delete!(d, "b") # d değişmeden kalır
Dict{String, Int64} with 1 entry:
"a" => 1Base.pop! — Methodpop!(koleksiyon, anahtar[, varsayılan])Eğer koleksiyon içinde mevcutsa anahtar için eşlemeyi sil ve döndür, aksi takdirde varsayılanı döndür veya varsayılan belirtilmemişse bir hata fırlat.
Örnekler
julia> d = Dict("a"=>1, "b"=>2, "c"=>3);
julia> pop!(d, "a")
1
julia> pop!(d, "d")
HATA: KeyError: anahtar "d" bulunamadı
Stacktrace:
[...]
julia> pop!(d, "e", 4)
4Base.keys — Functionkeys(iterator)Anahtarlar ve değerler (örneğin diziler ve sözlükler) içeren bir yineleyici veya koleksiyon için, anahtarlar üzerinde bir yineleyici döndürür.
Base.values — Functionvalues(iterator)Anahtarları ve değerleri olan bir iterator veya koleksiyon için, değerlere yönelik bir iterator döndürür. Bu fonksiyon, genel bir iteratorun elemanları genellikle "değerleri" olarak kabul edildiğinden, varsayılan olarak argümanını basitçe döndürür.
Örnekler
julia> d = Dict("a"=>1, "b"=>2);
julia> values(d)
ValueIterator for a Dict{String, Int64} with 2 entries. Values:
2
1
julia> values([2])
1-element Vector{Int64}:
2values(a::AbstractDict)Bir koleksiyondaki tüm değerler üzerinde bir yineleyici döndürür. collect(values(a)) bir değerler dizisi döndürür. Değerler bir hash tablosunda saklandığında, Dict durumunda olduğu gibi, döndürülen sıranın değişebileceğini unutmayın. Ancak keys(a), values(a) ve pairs(a) hepsi a üzerinde yineleme yapar ve elemanları aynı sırada döndürür.
Örnekler
julia> D = Dict('a'=>2, 'b'=>3)
Dict{Char, Int64} with 2 entries:
'a' => 2
'b' => 3
julia> collect(values(D))
2-element Vector{Int64}:
2
3Base.pairs — Functionpairs(IndexLinear(), A)
pairs(IndexCartesian(), A)
pairs(IndexStyle(A), A)Dizi A'nın her bir elemanına erişen bir iteratör, i => x döndürür; burada i elemanın indeksi ve x = A[i]'dir. pairs(A) ile aynı, tek farkı indeks stilinin seçilebilmesidir. Ayrıca enumerate(A) ile de benzer, ancak i A için geçerli bir indeks olacaktır, oysa enumerate her zaman 1'den sayar, A'nın indekslerine bakılmaksızın.
IndexLinear() belirtmek, i'nin bir tam sayı olmasını garanti eder; IndexCartesian() belirtmek, i'nin bir Base.CartesianIndex olmasını garanti eder; IndexStyle(A) belirtmek, dizi A için tanımlanmış olan yerel indeksleme stilini seçer.
Temel dizinin sınırlarının değiştirilmesi bu iteratörü geçersiz kılacaktır.
Örnekler
julia> A = ["a" "d"; "b" "e"; "c" "f"];
julia> for (index, value) in pairs(IndexStyle(A), A)
println("$index $value")
end
1 a
2 b
3 c
4 d
5 e
6 f
julia> S = view(A, 1:2, :);
julia> for (index, value) in pairs(IndexStyle(S), S)
println("$index $value")
end
CartesianIndex(1, 1) a
CartesianIndex(2, 1) b
CartesianIndex(1, 2) d
CartesianIndex(2, 2) eAyrıca bkz. IndexStyle, axes.
pairs(collection)Herhangi bir koleksiyondaki anahtar => değer çiftleri üzerinde bir yineleyici döndürür; bu, bir dizi gibi bir anahtar kümesini bir değer kümesine eşleyen koleksiyonları içerir. Anahtarlar dizi indeksleri olduğunda diziler de buna dahildir. Girişler dahili olarak bir hash tablosunda saklandığında, Dict gibi, döndürülen sıranın değişebileceğini unutmayın. Ancak keys(a), values(a) ve pairs(a) hepsi a üzerinde yineleme yapar ve öğeleri aynı sırada döndürür.
Örnekler
julia> a = Dict(zip(["a", "b", "c"], [1, 2, 3]))
Dict{String, Int64} with 3 entries:
"c" => 3
"b" => 2
"a" => 1
julia> pairs(a)
Dict{String, Int64} with 3 entries:
"c" => 3
"b" => 2
"a" => 1
julia> foreach(println, pairs(["a", "b", "c"]))
1 => "a"
2 => "b"
3 => "c"
julia> (;a=1, b=2, c=3) |> pairs |> collect
3-element Vector{Pair{Symbol, Int64}}:
:a => 1
:b => 2
:c => 3
julia> (;a=1, b=2, c=3) |> collect
3-element Vector{Int64}:
1
2
3Base.merge — Functionmerge(initial::Face, others::Face...)initial yüzünün ve diğerlerinin özelliklerini birleştirir, daha sonraki yüzler önceliğe sahiptir.
merge(d::AbstractDict, others::AbstractDict...)Verilen koleksiyonlardan birleştirilmiş bir koleksiyon oluşturur. Gerekirse, sonuçta oluşan koleksiyonun türleri, birleştirilen koleksiyonların türlerini karşılamak için yükseltilecektir. Aynı anahtar başka bir koleksiyonda mevcutsa, o anahtar için değer, listelenen son koleksiyondaki değeri olacaktır. Aynı anahtara sahip değerlerin özel işlenmesi için mergewith kısmına da bakınız.
Örnekler
julia> a = Dict("foo" => 0.0, "bar" => 42.0)
Dict{String, Float64} with 2 entries:
"bar" => 42.0
"foo" => 0.0
julia> b = Dict("baz" => 17, "bar" => 4711)
Dict{String, Int64} with 2 entries:
"bar" => 4711
"baz" => 17
julia> merge(a, b)
Dict{String, Float64} with 3 entries:
"bar" => 4711.0
"baz" => 17.0
"foo" => 0.0
julia> merge(b, a)
Dict{String, Float64} with 3 entries:
"bar" => 42.0
"baz" => 17.0
"foo" => 0.0merge(a::NamedTuple, bs::NamedTuple...)İki veya daha fazla mevcut named tuple'ı soldan sağa doğru birleştirerek yeni bir named tuple oluşturur. Birleştirme, named tuple çiftleri arasında soldan sağa doğru gerçekleşir ve bu nedenle en soldaki ve en sağdaki named tuple'larda bulunan alanların sırası, en soldaki named tuple'da bulundukları konumu alır. Ancak, değerler, o alanı içeren en sağdaki named tuple'daki eşleşen alanlardan alınır. Bir çiftin yalnızca en sağdaki named tuple'ında bulunan alanlar sona eklenir. Sadece bir tane named tuple sağlandığında bir yedekleme uygulanır; imzası merge(a::NamedTuple) şeklindedir.
3 veya daha fazla NamedTuple birleştirmek en az Julia 1.1 gerektirir.
Örnekler
julia> merge((a=1, b=2, c=3), (b=4, d=5))
(a = 1, b = 4, c = 3, d = 5)julia> merge((a=1, b=2), (b=3, c=(d=1,)), (c=(d=2,),))
(a = 1, b = 3, c = (d = 2,))merge(a::NamedTuple, iterable)Bir anahtar-değer çiftleri iterable'ını adlandırılmış bir demet olarak yorumlayın ve birleştirme işlemi gerçekleştirin.
julia> merge((a=1, b=2, c=3), [:b=>4, :d=>5])
(a = 1, b = 4, c = 3, d = 5)Base.mergewith — Functionmergewith(combine, d::AbstractDict, others::AbstractDict...)
mergewith(combine)
merge(combine, d::AbstractDict, others::AbstractDict...)Verilen koleksiyonlardan birleştirilmiş bir koleksiyon oluşturun. Gerekirse, sonuç koleksiyonunun türleri birleştirilen koleksiyonların türlerini karşılamak için yükseltilecektir. Aynı anahtara sahip değerler, birleştirici fonksiyon kullanılarak birleştirilecektir. Curry biçimi mergewith(combine) fonksiyonu (args...) -> mergewith(combine, args...) döndürür.
merge(combine::Union{Function,Type}, args...) metodu, geriye dönük uyumluluk için mergewith(combine, args...)'nin bir takma adı olarak hala mevcuttur.
mergewith Julia 1.5 veya daha yenisini gerektirir.
Örnekler
julia> a = Dict("foo" => 0.0, "bar" => 42.0)
Dict{String, Float64} with 2 entries:
"bar" => 42.0
"foo" => 0.0
julia> b = Dict("baz" => 17, "bar" => 4711)
Dict{String, Int64} with 2 entries:
"bar" => 4711
"baz" => 17
julia> mergewith(+, a, b)
Dict{String, Float64} with 3 entries:
"bar" => 4753.0
"baz" => 17.0
"foo" => 0.0
julia> ans == mergewith(+)(a, b)
trueBase.merge! — Functionmerge!(d::AbstractDict, others::AbstractDict...)Diğer koleksiyonlardan çiftlerle koleksiyonu güncelle. Ayrıca bkz. merge.
Örnekler
julia> d1 = Dict(1 => 2, 3 => 4);
julia> d2 = Dict(1 => 4, 4 => 5);
julia> merge!(d1, d2);
julia> d1
Dict{Int64, Int64} with 3 entries:
4 => 5
3 => 4
1 => 4Base.mergewith! — Functionmergewith!(combine, d::AbstractDict, others::AbstractDict...) -> d
mergewith!(combine)
merge!(combine, d::AbstractDict, others::AbstractDict...) -> dDiğer koleksiyonlardan çiftlerle koleksiyonu güncelleyin. Aynı anahtara sahip değerler, birleştirici fonksiyon kullanılarak birleştirilecektir. Curry'li form mergewith!(combine) fonksiyonu (args...) -> mergewith!(combine, args...) döndürür.
merge!(combine::Union{Function,Type}, args...) metodu, mergewith!(combine, args...)'in bir takma adı olarak geriye dönük uyumluluk için hala mevcuttur.
mergewith! Julia 1.5 veya daha yenisini gerektirir.
Örnekler
julia> d1 = Dict(1 => 2, 3 => 4);
julia> d2 = Dict(1 => 4, 4 => 5);
julia> mergewith!(+, d1, d2);
julia> d1
Dict{Int64, Int64} with 3 entries:
4 => 5
3 => 4
1 => 6
julia> mergewith!(-, d1, d1);
julia> d1
Dict{Int64, Int64} with 3 entries:
4 => 0
3 => 0
1 => 0
julia> foldl(mergewith!(+), [d1, d2]; init=Dict{Int64, Int64}())
Dict{Int64, Int64} with 3 entries:
4 => 5
3 => 0
1 => 4Base.sizehint! — Functionsizehint!(s, n; first::Bool=false, shrink::Bool=true) -> sKoleksiyon s'nin en az n eleman için kapasite ayırmasını önerir. Yani, s'ye birçok değer ekleyeceğinizi düşünüyorsanız, bunu önceden bir kez yaparak artan yeniden tahsisat maliyetinden kaçınabilirsiniz; bu performansı artırabilir.
Eğer first true ise, o zaman ek alan koleksiyonun başlangıcından önce ayrılır. Bu şekilde, push! yerine pushfirst! çağrıları daha hızlı hale gelebilir. Bu anahtar kelimeyi sağlamak, koleksiyon sıralı değilse veya pushfirst! bu koleksiyon için desteklenmiyorsa bir hataya neden olabilir.
Eğer shrink=true (varsayılan), koleksiyonun mevcut kapasitesi n'den büyükse kapasitesi azaltılabilir.
Ayrıca resize! bakınız.
Performans modeli hakkında notlar
sizehint! destekleyen türler için,
push!veappend!yöntemleri genellikle (ancak zorunlu değildir) ek depolama önceden ayırabilir.Baseiçinde uygulanan türler için genellikle bunu yapar, genel bir kullanım durumu için optimize edilmiş bir sezgi kullanarak.sizehint!bu ön tahsisi kontrol edebilir. Yine, genellikleBaseiçindeki türler için bunu yapar.empty!, bu tür ön tahsisi destekleyen türler için neredeyse maliyetsizdir (ve O(1)).
shrink ve first argümanları Julia 1.11'de eklendi.
Base.keytype — Functionkeytype(T::Type{<:AbstractArray})
keytype(A::AbstractArray)Bir dizinin anahtar türünü döndürür. Bu, keys(...) sonucunun eltype ile eşdeğerdir ve esasen sözlük arayüzü ile uyumluluk için sağlanmıştır.
Örnekler
julia> keytype([1, 2, 3]) == Int
true
julia> keytype([1 2; 3 4])
CartesianIndex{2}Diziler için bu işlev en az Julia 1.2'yi gerektirir.
keytype(type)Bir sözlük türünün anahtar türünü alır. eltype ile benzer şekilde davranır.
Örnekler
julia> keytype(Dict(Int32(1) => "foo"))
Int32Base.valtype — Functionvaltype(T::Type{<:AbstractArray})
valtype(A::AbstractArray)Bir dizinin değer türünü döndürür. Bu, eltype ile aynıdır ve esasen sözlük arayüzü ile uyumluluk için sağlanmıştır.
Örnekler
julia> valtype(["one", "two", "three"])
StringDiziler için bu işlev en az Julia 1.2 gerektirir.
valtype(type)Bir sözlük türünün değer türünü alır. eltype ile benzer şekilde davranır.
Örnekler
julia> valtype(Dict(Int32(1) => "foo"))
StringTamamıyla uygulanmıştır:
Kısmen uygulanmıştır:
Set-Like Collections
Base.AbstractSet — TypeAbstractSet{T}T türünden elemanlara sahip olan set-benzeri türler için süpertip. Set, BitSet ve diğer türler bunun alt türleridir.
Base.Set — TypeSet{T} <: AbstractSet{T}Setler, hızlı üyelik testi sağlayan değiştirilebilir konteynerlerdir.
Setler, in, union ve intersect gibi küme işlemlerinin verimli uygulamalarına sahiptir. Bir Set içindeki elemanlar, elemanların isequal tanımına göre benzersizdir. Bir Set içindeki elemanların sırası, bir uygulama ayrıntısıdır ve güvenilir değildir.
Ayrıca bakınız: AbstractSet, BitSet, Dict, push!, empty!, union!, in, isequal
Örnekler
julia> s = Set("aaBca")
Set{Char} with 3 elements:
'a'
'c'
'B'
julia> push!(s, 'b')
Set{Char} with 4 elements:
'a'
'b'
'B'
'c'
julia> s = Set([NaN, 0.0, 1.0, 2.0]);
julia> -0.0 in s # isequal(0.0, -0.0) is false
false
julia> NaN in s # isequal(NaN, NaN) is true
trueBase.BitSet — TypeBitSet([itr])Verilen iterable nesne tarafından üretilen sıralı bir Int kümesi oluşturur veya boş bir küme döner. Bit dizesi olarak uygulanmıştır ve bu nedenle yoğun tam sayı kümeleri için tasarlanmıştır. Küme seyrek olacaksa (örneğin, birkaç çok büyük tam sayı tutuyorsa), bunun yerine Set kullanın.
Base.IdSet — TypeIdSet{T}([itr])
IdSet()IdSet{T}() bir küme oluşturur (bkz. Set) ve T türündeki değerlerle eşitlik için === kullanır.
Aşağıdaki örnekte, değerlerin hepsi isequal olduğu için sıradan Set içinde üzerine yazılır. IdSet ise === ile karşılaştırma yapar ve böylece 3 farklı değeri korur.
Örnekler
julia> Set(Any[true, 1, 1.0])
Set{Any} with 1 element:
1.0
julia> IdSet{Any}(Any[true, 1, 1.0])
IdSet{Any} with 3 elements:
1.0
1
trueBase.union — Functionunion(s, itrs...)
∪(s, itrs...)Tüm argümanlardan tüm farklı öğeleri içeren bir nesne oluşturur.
İlk argüman, hangi türde bir konteyner döndürüleceğini kontrol eder. Eğer bu bir dizi ise, öğelerin ilk göründüğü sırayı korur.
Unicode ∪, Julia REPL'de \cup yazıp ardından tab tuşuna basarak ve birçok editörde yazılabilir. Bu, s ∪ itr şeklinde kullanılan bir infiks operatördür.
Ayrıca unique, intersect, isdisjoint, vcat, Iterators.flatten ile de ilgili.
Örnekler
julia> union([1, 2], [3])
3-element Vector{Int64}:
1
2
3
julia> union([4 2 3 4 4], 1:3, 3.0)
4-element Vector{Float64}:
4.0
2.0
3.0
1.0
julia> (0, 0.0) ∪ (-0.0, NaN)
3-element Vector{Real}:
0
-0.0
NaN
julia> union(Set([1, 2]), 2:3)
Set{Int64} with 3 elements:
2
3
1Base.union! — Functionunion!(s::Union{AbstractSet,AbstractVector}, itrs...)Geçilen kümelerin union birleşimini oluşturur ve s'yi sonuçla günceller. Dizilerle sıralamayı korur.
!!! uyarı Herhangi bir değiştirilmiş argümanın başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Örnekler
julia> a = Set([3, 4, 5]);
julia> union!(a, 1:2:7);
julia> a
Set{Int64} with 5 elements:
5
4
7
3
1Base.intersect — Functionintersect(s, itrs...)
∩(s, itrs...)Tüm argümanlarda bulunan öğeleri içeren küme oluşturur.
İlk argüman, hangi tür konteynerin döndürüleceğini kontrol eder. Eğer bu bir dizi ise, öğelerin ilk göründüğü sırayı korur.
Unicode ∩ Julia REPL'de \cap yazıp ardından tab tuşuna basarak ve birçok editörde yazılabilir. Bu, s ∩ itr şeklinde kullanılabilen bir infiks operatördür.
Ayrıca setdiff, isdisjoint, issubset, issetequal ile de ilgili.
Julia 1.8 itibarıyla intersect, iki girişin tür-promote edilmiş eltype'lerinin eltype'ine sahip bir sonuç döndürür.
Örnekler
julia> intersect([1, 2, 3], [3, 4, 5])
1-element Vector{Int64}:
3
julia> intersect([1, 4, 4, 5, 6], [6, 4, 6, 7, 8])
2-element Vector{Int64}:
4
6
julia> intersect(1:16, 7:99)
7:16
julia> (0, 0.0) ∩ (-0.0, 0)
1-element Vector{Real}:
0
julia> intersect(Set([1, 2]), BitSet([2, 3]), 1.0:10.0)
Set{Float64} with 1 element:
2.0Base.setdiff — Functionsetdiff(s, itrs...)s kümesindeki ancak itrs içindeki herhangi bir iterable'da olmayan elemanların kümesini oluşturur. Dizilerle sıralamayı korur.
Ayrıca bkz. setdiff!, union ve intersect.
Örnekler
julia> setdiff([1,2,3], [3,4,5])
2-element Vector{Int64}:
1
2Base.setdiff! — Functionsetdiff!(s, itrs...)Küme s'den (yerinde) itrs'den her bir iterable'ın her bir elemanını çıkarın. Dizilerle sıralamayı koruyun.
!!! uyarı Herhangi bir değiştirilmiş argümanın başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Örnekler
julia> a = Set([1, 3, 4, 5]);
julia> setdiff!(a, 1:2:6);
julia> a
Set{Int64} with 1 element:
4Base.symdiff — Functionsymdiff(s, itrs...)Geçilen kümelerdeki elemanların simetrik farkını oluşturur. s bir AbstractSet değilse, sıralama korunur.
Ayrıca bkz. symdiff!, setdiff, union ve intersect.
Örnekler
julia> symdiff([1,2,3], [3,4,5], [4,5,6])
3-element Vector{Int64}:
1
2
6
julia> symdiff([1,2,1], [2, 1, 2])
Int64[]Base.symdiff! — Functionsymdiff!(s::Union{AbstractSet,AbstractVector}, itrs...)Geçilen kümelerin simetrik farkını oluşturur ve s'yi sonuçla günceller. s bir dizi olduğunda, sıralama korunur. Bu durumda, elemanların çokluluğu önemlidir.
!!! uyarı Herhangi bir değiştirilmiş argümanın başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Base.intersect! — Functionintersect!(s::Union{AbstractSet,AbstractVector}, itrs...)Geçerli tüm küme kesişimlerini alır ve sonucu s ile değiştirir. Dizilerle sıralamayı korur.
!!! uyarı Herhangi bir değiştirilmiş argümanın, diğer herhangi bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Base.issubset — Functionissubset(a, b) -> Bool
⊆(a, b) -> Bool
⊇(b, a) -> BoolHer a'nın her bir elemanının b'de de bulunup bulunmadığını in kullanarak belirleyin.
Ayrıca ⊊, ⊈, ∩, ∪, contains ile de bakabilirsiniz.
Örnekler
julia> issubset([1, 2], [1, 2, 3])
true
julia> [1, 2, 3] ⊆ [1, 2]
false
julia> [1, 2, 3] ⊇ [1, 2]
trueBase.in! — Functionin!(x, s::AbstractSet) -> BoolEğer x s içinde ise, true döner. Aksi takdirde, x'i s'ye ekler ve false döner. Bu, in(x, s) ? true : (push!(s, x); false) ile eşdeğerdir, ancak daha verimli bir uygulamaya sahip olabilir.
Ayrıca bakınız: in, push!, Set
Bu fonksiyon en az 1.11 sürümünü gerektirir.
Örnekler
julia> s = Set{Any}([1, 2, 3]); in!(4, s)
false
julia> length(s)
4
julia> in!(0x04, s)
true
julia> s
Set{Any} with 4 elements:
4
2
3
1Base.:⊈ — Function⊈(a, b) -> Bool
⊉(b, a) -> Bool⊆ ve ⊇'nin olumsuzlaması, yani a'nın b'nin alt kümesi olmadığını kontrol eder.
Örnekler
julia> (1, 2) ⊈ (2, 3)
true
julia> (1, 2) ⊈ (1, 2, 3)
falseBase.:⊊ — Function⊊(a, b) -> Bool
⊋(b, a) -> Boola'n b'ye eşit olmayan bir alt kümesi olup olmadığını belirler.
Örnekler
julia> (1, 2) ⊊ (1, 2, 3)
true
julia> (1, 2) ⊊ (1, 2)
falseBase.issetequal — Functionissetequal(a, b) -> Boola ve b'nin aynı elemanlara sahip olup olmadığını belirler. a ⊆ b && b ⊆ a ile eşdeğerdir ancak mümkün olduğunda daha verimlidir.
Ayrıca bakınız: isdisjoint, union.
Örnekler
julia> issetequal([1, 2], [1, 2, 3])
false
julia> issetequal([1, 2], [2, 1])
trueissetequal(x)x argümanını issetequal kullanarak karşılaştıran bir fonksiyon oluşturun, yani y -> issetequal(y, x) fonksiyonuna eşdeğer bir fonksiyon. Döndürülen fonksiyon Base.Fix2{typeof(issetequal)} türündedir ve özel yöntemleri uygulamak için kullanılabilir.
Bu işlevsellik en az Julia 1.11 gerektirir.
Base.isdisjoint — Functionisdisjoint(a, b) -> BoolKoleksiyonların a ve b ayrık olup olmadığını belirleyin. isempty(a ∩ b) ile eşdeğerdir ancak mümkün olduğunda daha verimlidir.
Ayrıca bkz: intersect, isempty, issetequal.
Bu fonksiyon en az Julia 1.5 gerektirir.
Örnekler
julia> isdisjoint([1, 2], [2, 3, 4])
false
julia> isdisjoint([3, 1], [2, 4])
trueisdisjoint(x)x ile isdisjoint kullanarak argümanını karşılaştıran bir fonksiyon oluşturun, yani y -> isdisjoint(y, x) ile eşdeğer bir fonksiyon. Döndürülen fonksiyon Base.Fix2{typeof(isdisjoint)} türündedir ve özel yöntemleri uygulamak için kullanılabilir.
Bu işlevsellik en az Julia 1.11 gerektirir.
Tamamıyla uygulanmıştır:
Kısmen uygulanmıştır:
Dequeues
Base.push! — Functionpush!(collection, items...) -> collectionBir veya daha fazla items'ı collection'a ekleyin. Eğer collection sıralı bir konteyner ise, öğeler sona (verilen sırada) eklenir.
Örnekler
julia> push!([1, 2, 3], 4, 5, 6)
6-element Vector{Int64}:
1
2
3
4
5
6Eğer collection sıralı ise, başka bir koleksiyonun tüm elemanlarını eklemek için append! kullanın. Önceki örneğin sonucu, append!([1, 2, 3], [4, 5, 6]) ile eşdeğerdir. AbstractSet nesneleri için, bunun yerine union! kullanılabilir.
Performans modeli hakkında notlar için sizehint! bakın.
Ayrıca pushfirst! ile ilgili de bilgi edinin.
Base.pop! — Functionpop!(koleksiyon) -> öğekoleksiyon içinden bir öğe çıkarır ve onu döndürür. Eğer koleksiyon sıralı bir konteyner ise, son öğe döndürülür; sırasız konteynerler için ise rastgele bir öğe döndürülür.
Ayrıca bakınız: popfirst!, popat!, delete!, deleteat!, splice!, ve push!.
Örnekler
julia> A=[1, 2, 3]
3-element Vector{Int64}:
1
2
3
julia> pop!(A)
3
julia> A
2-element Vector{Int64}:
1
2
julia> S = Set([1, 2])
Set{Int64} with 2 elements:
2
1
julia> pop!(S)
2
julia> S
Set{Int64} with 1 element:
1
julia> pop!(Dict(1=>2))
1 => 2pop!(koleksiyon, anahtar[, varsayılan])Eğer koleksiyon içinde mevcutsa anahtar için eşlemeyi sil ve döndür, aksi takdirde varsayılanı döndür veya varsayılan belirtilmemişse bir hata fırlat.
Örnekler
julia> d = Dict("a"=>1, "b"=>2, "c"=>3);
julia> pop!(d, "a")
1
julia> pop!(d, "d")
HATA: KeyError: anahtar "d" bulunamadı
Stacktrace:
[...]
julia> pop!(d, "e", 4)
4Base.popat! — Functionpopat!(a::Vector, i::Integer, [default])Verilen i'deki öğeyi kaldırır ve onu döndürür. Sonraki öğeler, oluşan boşluğu doldurmak için kaydırılır. i, a için geçerli bir indeks değilse, default'u döndürür veya default belirtilmemişse bir hata fırlatır.
Ayrıca bakınız: pop!, popfirst!, deleteat!, splice!.
Bu fonksiyon Julia 1.5 itibarıyla mevcuttur.
Örnekler
julia> a = [4, 3, 2, 1]; popat!(a, 2)
3
julia> a
3-element Vector{Int64}:
4
2
1
julia> popat!(a, 4, missing)
missing
julia> popat!(a, 4)
HATA: BoundsError: 3-element Vector{Int64} üzerinde [4] indeksine erişim denemesi
[...]Base.pushfirst! — Functionpushfirst!(koleksiyon, öğeler...) -> koleksiyonBir veya daha fazla öğeyi koleksiyonun başına ekler.
Bu işlev birçok diğer programlama dilinde unshift olarak adlandırılır.
Örnekler
julia> pushfirst!([1, 2, 3, 4], 5, 6)
6-element Vector{Int64}:
5
6
1
2
3
4Base.popfirst! — Functionpopfirst!(koleksiyon) -> öğeKoleksiyondan ilk öğeyi çıkarır.
Bu işlev birçok diğer programlama dilinde shift olarak adlandırılır.
Ayrıca bakınız: pop!, popat!, delete!.
Örnekler
julia> A = [1, 2, 3, 4, 5, 6]
6-elemanlı Vektör{Int64}:
1
2
3
4
5
6
julia> popfirst!(A)
1
julia> A
5-elemanlı Vektör{Int64}:
2
3
4
5
6Base.insert! — Functioninsert!(a::Vector, index::Integer, item)Bir item'i verilen index'te a'ya ekleyin. index, item'in sonuçta oluşan a içindeki indeksidir.
Ayrıca bakınız: push!, replace, popat!, splice!.
Örnekler
julia> insert!(Any[1:6;], 3, "here")
7-element Vector{Any}:
1
2
"here"
3
4
5
6Base.deleteat! — Functiondeleteat!(a::Vector, i::Integer)Verilen i'deki öğeyi kaldırır ve değiştirilmiş a'yı döndürür. Sonraki öğeler, oluşan boşluğu doldurmak için kaydırılır.
Ayrıca bakınız: keepat!, delete!, popat!, splice!.
Örnekler
julia> deleteat!([6, 5, 4, 3, 2, 1], 2)
5-element Vector{Int64}:
6
4
3
2
1deleteat!(a::Vector, inds)Verilen inds tarafından belirtilen indekslerdeki öğeleri kaldırır ve değiştirilmiş a'yı döndürür. Sonraki öğeler, oluşan boşluğu doldurmak için kaydırılır.
inds, ya bir yineleyici ya da sıralı ve benzersiz tam sayı indekslerinden oluşan bir koleksiyon ya da a ile aynı uzunlukta ve true değerinin silinecek girişleri gösterdiği bir boolean vektörü olabilir.
Örnekler
julia> deleteat!([6, 5, 4, 3, 2, 1], 1:2:5)
3-element Vector{Int64}:
5
3
1
julia> deleteat!([6, 5, 4, 3, 2, 1], [true, false, true, false, true, false])
3-element Vector{Int64}:
5
3
1
julia> deleteat!([6, 5, 4, 3, 2, 1], (2, 2))
HATA: ArgumentError: indeksler benzersiz ve sıralı olmalıdır
Stacktrace:
[...]Base.keepat! — Functionkeepat!(a::Vector, inds)
keepat!(a::BitVector, inds)Verilen inds tarafından belirtilmeyen tüm indekslerdeki öğeleri kaldırın ve değiştirilmiş a'yı döndürün. Korunan öğeler, sonuçta oluşan boşlukları doldurmak için kaydırılır.
!!! uyarı Herhangi bir değiştirilmiş argümanın başka bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
inds, sıralı ve benzersiz tam sayı indekslerinin bir yineleyicisi olmalıdır. Ayrıca bkz. deleteat!.
Bu fonksiyon Julia 1.7 itibarıyla mevcuttur.
Örnekler
julia> keepat!([6, 5, 4, 3, 2, 1], 1:2:5)
3-element Vector{Int64}:
6
4
2keepat!(a::Vector, m::AbstractVector{Bool})
keepat!(a::BitVector, m::AbstractVector{Bool})Yerinde mantıksal indeksleme versiyonu a = a[m]. Yani, eşit uzunluktaki a ve m vektörlerinde keepat!(a, m) işlemi, m'nin karşılık gelen indekste false olduğu tüm a elemanlarını kaldırır.
Örnekler
julia> a = [:a, :b, :c];
julia> keepat!(a, [true, false, true])
2-element Vector{Symbol}:
:a
:c
julia> a
2-element Vector{Symbol}:
:a
:cBase.splice! — Functionsplice!(a::Vector, index::Integer, [replacement]) -> itemVerilen indeksteki öğeyi kaldırır ve kaldırılan öğeyi döndürür. Sonraki öğeler, oluşan boşluğu doldurmak için sola kaydırılır. Belirtilirse, sıralı bir koleksiyondan gelen yer tutucu değerler, kaldırılan öğenin yerine yerleştirilecektir.
Ayrıca bakınız: replace, delete!, deleteat!, pop!, popat!.
Örnekler
julia> A = [6, 5, 4, 3, 2, 1]; splice!(A, 5)
2
julia> A
5-element Vector{Int64}:
6
5
4
3
1
julia> splice!(A, 5, -1)
1
julia> A
5-element Vector{Int64}:
6
5
4
3
-1
julia> splice!(A, 1, [-1, -2, -3])
6
julia> A
7-element Vector{Int64}:
-1
-2
-3
5
4
3
-1Herhangi bir öğeyi kaldırmadan replacement'ı bir indeks n'den önce eklemek için splice!(collection, n:n-1, replacement) kullanın.
splice!(a::Vector, indices, [replacement]) -> itemsBelirtilen indekslerdeki öğeleri kaldırır ve kaldırılan öğeleri içeren bir koleksiyonu döndürür. Sonraki öğeler, oluşan boşlukları doldurmak için sola kaydırılır. Belirtilmişse, sıralı bir koleksiyondan gelen yer tutucu değerler kaldırılan öğelerin yerine yerleştirilecektir; bu durumda, indices bir AbstractUnitRange olmalıdır.
Herhangi bir öğeyi kaldırmadan bir indeks n öncesine replacement eklemek için splice!(collection, n:n-1, replacement) kullanın.
Herhangi bir değiştirilmiş argümanın, diğer bir argümanla bellek paylaşması durumunda davranış beklenmedik olabilir.
Julia 1.5'ten önce, indices her zaman bir UnitRange olmalıdır.
Julia 1.8'den önce, yer tutucu değerler ekleniyorsa indices bir UnitRange olmalıdır.
Örnekler
julia> A = [-1, -2, -3, 5, 4, 3, -1]; splice!(A, 4:3, 2)
Int64[]
julia> A
8-element Vector{Int64}:
-1
-2
-3
2
5
4
3
-1Base.resize! — Functionresize!(a::Vector, n::Integer) -> Vectora'yı n eleman içerecek şekilde yeniden boyutlandırır. Eğer n, mevcut koleksiyon uzunluğundan küçükse, ilk n eleman korunur. Eğer n daha büyükse, yeni elemanların başlatılacağı garanti edilmez.
Örnekler
julia> resize!([6, 5, 4, 3, 2, 1], 3)
3-element Vector{Int64}:
6
5
4
julia> a = resize!([6, 5, 4, 3, 2, 1], 8);
julia> length(a)
8
julia> a[1:6]
6-element Vector{Int64}:
6
5
4
3
2
1Base.append! — Functionappend!(collection, collections...) -> collection.Sıralı bir konteyner collection için, her collections'ın elemanlarını sonuna ekleyin.
Birden fazla koleksiyonun eklenmesi, en az Julia 1.6 gerektirir.
Örnekler
julia> append!([1], [2, 3])
3-element Vector{Int64}:
1
2
3
julia> append!([1, 2, 3], [4, 5], [6])
6-element Vector{Int64}:
1
2
3
4
5
6collection'a, başka bir koleksiyonda zaten bulunmayan bireysel öğeleri eklemek için push! kullanın. Önceki örneğin sonucu, push!([1, 2, 3], 4, 5, 6) ile eşdeğerdir.
Performans modeli hakkında notlar için sizehint! bakın.
Ayrıca, vektörler için vcat, kümeler için union! ve ters sıradaki işlemler için prepend! ve pushfirst! ile ilgili daha fazla bilgiye bakın.
Base.prepend! — Functionprepend!(a::Vector, collections...) -> collectionHer collections içindeki her bir öğeyi a'nın başına ekleyin.
collections birden fazla koleksiyon belirttiğinde, sıralama korunur: collections[1]'in öğeleri a'da en solda yer alacak ve devam edecektir.
Birden fazla koleksiyonun eklenmesi, en az Julia 1.6 gerektirir.
Örnekler
julia> prepend!([3], [1, 2])
3-element Vector{Int64}:
1
2
3
julia> prepend!([6], [1, 2], [3, 4, 5])
6-element Vector{Int64}:
1
2
3
4
5
6Tamamıyla uygulanmıştır:
Utility Collections
Core.Pair — TypePair(x, y)
x => yPair nesnesini Pair{typeof(x), typeof(y)} türü ile oluşturun. Elemanlar first ve second alanlarında saklanır. Ayrıca yine de yineleme yoluyla erişilebilirler (ancak bir Pair, yayılma işlemleri için tek bir "skalar" olarak değerlendirilir).
Ayrıca bkz. Dict.
Örnekler
julia> p = "foo" => 7
"foo" => 7
julia> typeof(p)
Pair{String, Int64}
julia> p.first
"foo"
julia> for x in p
println(x)
end
foo
7
julia> replace.(["xops", "oxps"], "x" => "o")
2-element Vector{String}:
"oops"
"oops"Base.Pairs — TypeBase.Pairs(values, keys) <: AbstractDict{eltype(keys), eltype(values)}Bir indekslenebilir konteyneri aynı verinin bir Sözlük görünümüne dönüştürür. Temel verinin anahtar alanını değiştirmek bu nesneyi geçersiz kılabilir.