Collections and Data Structures
Iteration
L'itération séquentielle est implémentée par la fonction iterate. La boucle for générale :
for i in iter # or "for i = iter"
# body
endest traduit en :
next = iterate(iter)
while next !== nothing
(i, state) = next
# body
next = iterate(iter, state)
endL'objet state peut être n'importe quoi et doit être choisi de manière appropriée pour chaque type d'itérable. Voir le manual section on the iteration interface pour plus de détails sur la définition d'un type d'itérable personnalisé.
Base.iterate — Functioniterate(iter [, state]) -> Union{Nothing, Tuple{Any, Any}}Faites avancer l'itérateur pour obtenir le prochain élément. Si aucun élément ne reste, nothing doit être retourné. Sinon, un tuple de 2 éléments contenant le prochain élément et le nouvel état d'itération doit être retourné.
Base.IteratorSize — TypeIteratorSize(itertype::Type) -> IteratorSizeÉtant donné le type d'un itérateur, renvoie l'une des valeurs suivantes :
SizeUnknown()si la longueur (nombre d'éléments) ne peut pas être déterminée à l'avance.HasLength()s'il y a une longueur fixe et finie.HasShape{N}()s'il y a une longueur connue plus une notion de forme multidimensionnelle (comme pour un tableau). Dans ce cas,Ndoit donner le nombre de dimensions, et la fonctionaxesest valide pour l'itérateur.IsInfinite()si l'itérateur produit des valeurs indéfiniment.
La valeur par défaut (pour les itérateurs qui ne définissent pas cette fonction) est HasLength(). Cela signifie que la plupart des itérateurs sont supposés implémenter length.
Ce trait est généralement utilisé pour sélectionner entre des algorithmes qui pré-allouent de l'espace pour leur résultat, et des algorithmes qui redimensionnent leur résultat de manière incrémentielle.
julia> Base.IteratorSize(1:5)
Base.HasShape{1}()
julia> Base.IteratorSize((2,3))
Base.HasLength()Base.IteratorEltype — TypeIteratorEltype(itertype::Type) -> IteratorEltypeÉtant donné le type d'un itérateur, renvoie l'une des valeurs suivantes :
EltypeUnknown()si le type des éléments produits par l'itérateur n'est pas connu à l'avance.HasEltype()si le type d'élément est connu, eteltyperenverrait une valeur significative.
HasEltype() est la valeur par défaut, car on suppose que les itérateurs implémentent eltype.
Ce trait est généralement utilisé pour sélectionner entre des algorithmes qui pré-allouent un type de résultat spécifique, et des algorithmes qui choisissent un type de résultat en fonction des types des valeurs produites.
julia> Base.IteratorEltype(1:5)
Base.HasEltype()Entièrement mis en œuvre par :
AbstractRangeUnitRangeTupleNumberAbstractArrayBitSetIdDictDictWeakKeyDictChaqueLigneAbstractStringSetPairNamedTuple
Constructors and Types
Base.AbstractRange — TypeAbstractRange{T} <: AbstractVector{T}Supertype pour les plages linéaires avec des éléments de type T. UnitRange, LinRange et d'autres types sont des sous-types de cela.
Tous les sous-types doivent définir step. Ainsi, LogRange n'est pas un sous-type de AbstractRange.
Base.OrdinalRange — TypeOrdinalRange{T, S} <: AbstractRange{T}Supertype pour les plages ordinales avec des éléments de type T et des espacements de type S. Les étapes doivent toujours être des multiples exacts de oneunit, et T doit être un type "discret", qui ne peut pas avoir de valeurs inférieures à oneunit. Par exemple, les types Integer ou Date seraient qualifiés, tandis que Float64 ne le serait pas (puisque ce type peut représenter des valeurs inférieures à oneunit(Float64). UnitRange, StepRange, et d'autres types sont des sous-types de cela.
Base.AbstractUnitRange — TypeAbstractUnitRange{T} <: OrdinalRange{T, T}Supertype pour les plages avec une taille de pas de oneunit(T) avec des éléments de type T. UnitRange et d'autres types sont des sous-types de cela.
Base.StepRange — TypeStepRange{T, S} <: OrdinalRange{T, S}Des plages avec des éléments de type T avec un espacement de type S. L'écart entre chaque élément est constant, et la plage est définie en termes d'un start et d'un stop de type T et d'un step de type S. Ni T ni S ne doivent être des types à virgule flottante. La syntaxe a:b:c avec b != 0 et a, b, et c tous des entiers crée une StepRange.
Exemples
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<:Réel}Un intervalle paramétré par un début et un fin de type T, rempli d'éléments espacés de 1 depuis début jusqu'à ce que fin soit dépassé. La syntaxe a:b avec a et b étant tous deux des Entiers crée un UnitRange.
Exemples
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}Une plage avec len éléments espacés linéairement entre son start et stop. La taille de l'espacement est contrôlée par len, qui doit être un Integer.
Exemples
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.5Comparé à l'utilisation de range, la construction directe d'un LinRange devrait avoir moins de surcharge mais ne tentera pas de corriger les erreurs de point flottant :
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.3Voir aussi Logrange pour des points espacés logarithmiquement.
General Collections
Base.isempty — Functionisempty(collection) -> BoolDéterminez si une collection est vide (n'a aucun élément).
isempty(itr) peut consommer le prochain élément d'un itérateur à état itr à moins qu'une méthode appropriée Base.isdone(itr) ne soit définie. Les itérateurs à état devraient implémenter isdone, mais vous voudrez peut-être éviter d'utiliser isempty lors de l'écriture de code générique qui devrait prendre en charge tout type d'itérateur.
Exemples
julia> isempty([])
true
julia> isempty([1 2 3])
falseisempty(condition)Retourne true si aucune tâche n'attend sur la condition, false sinon.
Base.isdone — Functionisdone(itr, [state]) -> Union{Bool, Missing}Cette fonction fournit un indice de chemin rapide pour l'achèvement de l'itérateur. Cela est utile pour les itérateurs avec état qui souhaitent éviter que des éléments soient consommés s'ils ne vont pas être exposés à l'utilisateur (par exemple, lors de la vérification de l'achèvement dans isempty ou zip).
Les itérateurs avec état qui souhaitent opter pour cette fonctionnalité doivent définir une méthode isdone qui renvoie vrai/faux en fonction de l'état de l'itérateur. Les itérateurs sans état n'ont pas besoin d'implémenter cette fonction.
Si le résultat est missing, les appelants peuvent continuer et calculer iterate(x, state) === nothing pour obtenir une réponse définitive.
Base.empty! — Functionempty!(collection) -> collectionSupprime tous les éléments d'une collection.
Exemples
julia> A = Dict("a" => 1, "b" => 2)
Dict{String, Int64} avec 2 entrées :
"b" => 2
"a" => 1
julia> empty!(A);
julia> A
Dict{String, Int64}()empty!(c::Channel)Vider un canal c en appelant empty! sur le tampon interne. Retourner le canal vide.
Base.length — Functionlength(collection) -> IntegerRetourne le nombre d'éléments dans la collection.
Utilisez lastindex pour obtenir le dernier index valide d'une collection indexable.
Voir aussi : size, ndims, eachindex.
Exemples
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)Calcule length(r), mais peut vérifier les erreurs de dépassement lorsque le résultat ne peut pas être contenu dans Union{Integer(eltype(r)),Int}.
Entièrement mis en œuvre par :
AbstractRangeUnitRangeTupleNumberAbstractArrayBitSetIdDictDictWeakKeyDictAbstractStringSetNamedTuple
Iterable Collections
Base.in — Functionin(item, collection) -> Bool
∈(item, collection) -> BoolDéterminez si un élément est dans la collection donnée, dans le sens où il est == à l'une des valeurs générées en itérant sur la collection. Retournez une valeur Bool, sauf si item est missing ou si collection contient missing mais pas item, auquel cas missing est retourné (logique à trois valeurs, correspondant au comportement de any et ==).
Certaines collections suivent une définition légèrement différente. Par exemple, les Sets vérifient si l'élément est isequal à l'un des éléments ; les Dicts recherchent des paires key=>value, et la key est comparée en utilisant isequal.
Pour tester la présence d'une clé dans un dictionnaire, utilisez haskey ou k in keys(dict). Pour les collections mentionnées ci-dessus, le résultat est toujours un Bool.
Lors de la diffusion avec in.(items, collection) ou items .∈ collection, à la fois item et collection sont diffusés, ce qui n'est souvent pas ce qui est prévu. Par exemple, si les deux arguments sont des vecteurs (et que les dimensions correspondent), le résultat est un vecteur indiquant si chaque valeur dans la collection items est in la valeur à la position correspondante dans collection. Pour obtenir un vecteur indiquant si chaque valeur dans items est dans collection, enveloppez collection dans un tuple ou un Ref comme ceci : in.(items, Ref(collection)) ou items .∈ Ref(collection).
Voir aussi : ∉, insorted, contains, occursin, issubset.
Exemples
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∉(item, collection) -> Bool
∌(collection, item) -> BoolNégation de ∈ et ∋, c'est-à-dire vérifie que item n'est pas dans collection.
Lors de la diffusion avec items .∉ collection, à la fois item et collection sont diffusés, ce qui n'est souvent pas ce qui est voulu. Par exemple, si les deux arguments sont des vecteurs (et que les dimensions correspondent), le résultat est un vecteur indiquant si chaque valeur dans collection items n'est pas dans la valeur à la position correspondante dans collection. Pour obtenir un vecteur indiquant si chaque valeur dans items n'est pas dans collection, enveloppez collection dans un tuple ou un Ref comme ceci : items .∉ Ref(collection).
Exemples
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)Déterminez si le calcul x ∈ collection où collection::T peut être considéré comme une opération "rapide" (typiquement de complexité constante ou logarithmique). La définition hasfastin(x) = hasfastin(typeof(x)) est fournie pour la commodité afin que des instances puissent être passées au lieu de types. Cependant, la forme qui accepte un argument de type doit être définie pour les nouveaux types.
La valeur par défaut pour hasfastin(T) est true pour les sous-types de AbstractSet, AbstractDict et AbstractRange et false sinon.
Base.eltype — Functioneltype(type)Détermine le type des éléments générés en itérant une collection du type donné. Pour les types de dictionnaires, cela sera un Pair{KeyType,ValType}. La définition eltype(x) = eltype(typeof(x)) est fournie pour la commodité afin que des instances puissent être passées au lieu de types. Cependant, la forme qui accepte un argument de type doit être définie pour les nouveaux types.
Exemples
julia> eltype(fill(1f0, (2,2)))
Float32
julia> eltype(fill(0x1, (2,2)))
UInt8Base.indexin — Functionindexin(a, b)Renvoie un tableau contenant le premier index dans b pour chaque valeur dans a qui est membre de b. Le tableau de sortie contient nothing partout où a n'est pas membre de b.
Voir aussi : sortperm, findfirst.
Exemples
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)Renvoie un tableau contenant uniquement les éléments uniques de la collection itr, tels que déterminés par isequal et hash, dans l'ordre où le premier de chaque ensemble d'éléments équivalents apparaît à l'origine. Le type d'élément de l'entrée est préservé.
Voir aussi : unique!, allunique, allequal.
Exemples
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)Renvoie un tableau contenant une valeur de itr pour chaque valeur unique produite par f appliqué aux éléments de itr.
Exemples
julia> unique(x -> x^2, [1, -1, 3, -3, 4])
3-element Vector{Int64}:
1
3
4Cette fonctionnalité peut également être utilisée pour extraire les indices des premières occurrences d'éléments uniques dans un tableau :
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)Retourne les régions uniques de A le long de la dimension dims.
Exemples
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)Sélectionne une valeur de A pour chaque valeur unique produite par f appliqué aux éléments de A, puis retourne le A modifié.
Cette méthode est disponible depuis Julia 1.1.
Exemples
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)Supprime les éléments en double tels que déterminés par isequal et hash, puis retourne le A modifié. unique! retournera les éléments de A dans l'ordre dans lequel ils apparaissent. Si vous ne vous souciez pas de l'ordre des données retournées, alors appeler (sort!(A); unique!(A)) sera beaucoup plus efficace tant que les éléments de A peuvent être triés.
Exemples
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! peut traiter les données triées de manière beaucoup plus efficace.
julia> unique!(B)
3-element Vector{Int64}:
6
7
42Base.allunique — Functionallunique(itr) -> Bool
allunique(f, itr) -> BoolRetourne true si toutes les valeurs de itr sont distinctes lorsqu'elles sont comparées avec isequal. Ou si toutes les valeurs de [f(x) for x in itr] sont distinctes, pour la deuxième méthode.
Notez que allunique(f, itr) peut appeler f moins de fois que length(itr). Le nombre précis d'appels est considéré comme un détail d'implémentation.
allunique peut utiliser une implémentation spécialisée lorsque l'entrée est triée.
Voir aussi : unique, issorted, allequal.
La méthode allunique(f, itr) nécessite au moins Julia 1.11.
Exemples
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) -> BoolRetourne true si toutes les valeurs de itr sont égales lorsqu'elles sont comparées avec isequal. Ou si toutes les valeurs de [f(x) for x in itr] sont égales, pour la deuxième méthode.
Notez que allequal(f, itr) peut appeler f moins de fois que length(itr). Le nombre précis d'appels est considéré comme un détail d'implémentation.
Voir aussi : unique, allunique.
La fonction allequal nécessite au moins Julia 1.8.
La méthode allequal(f, itr) nécessite au moins Julia 1.11.
Exemples
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])Réduit la collection donnée itr avec l'opérateur binaire donné op. Si fourni, la valeur initiale init doit être un élément neutre pour op qui sera retourné pour les collections vides. Il n'est pas spécifié si init est utilisé pour les collections non vides.
Pour les collections vides, fournir init sera nécessaire, sauf dans certains cas spéciaux (par exemple, lorsque op est l'un de +, *, max, min, &, |) lorsque Julia peut déterminer l'élément neutre de op.
Les réductions pour certains opérateurs couramment utilisés peuvent avoir des implémentations spéciales et doivent être utilisées à la place : maximum(itr), minimum(itr), sum(itr), prod(itr), any(itr), all(itr). Il existe des méthodes efficaces pour concaténer certains tableaux de tableaux en appelant reduce(vcat, arr) ou reduce(hcat, arr).
L'associativité de la réduction dépend de l'implémentation. Cela signifie que vous ne pouvez pas utiliser des opérations non associatives comme - car il est indéfini si reduce(-,[1,2,3]) doit être évalué comme (1-2)-3 ou 1-(2-3). Utilisez foldl ou foldr à la place pour garantir l'associativité à gauche ou à droite.
Certaines opérations accumulent des erreurs. Le parallélisme sera plus facile si la réduction peut être exécutée par groupes. Les futures versions de Julia pourraient changer l'algorithme. Notez que les éléments ne sont pas réordonnés si vous utilisez une collection ordonnée.
Exemples
julia> reduce(*, [2; 3; 4])
24
julia> reduce(*, [2; 3; 4]; init=-1)
-24Base.reduce — Methodreduce(f, A::AbstractArray; dims=:, [init])Réduit la fonction à 2 arguments f le long des dimensions de A. dims est un vecteur spécifiant les dimensions à réduire, et l'argument clé init est la valeur initiale à utiliser dans les réductions. Pour +, *, max et min, l'argument init est optionnel.
L'associativité de la réduction dépend de l'implémentation ; si vous avez besoin d'une associativité particulière, par exemple de gauche à droite, vous devriez écrire votre propre boucle ou envisager d'utiliser foldl ou foldr. Voir la documentation pour reduce.
Exemples
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])Comme reduce, mais avec une associativité gauche garantie. Si fourni, l'argument clé init sera utilisé exactement une fois. En général, il sera nécessaire de fournir init pour travailler avec des collections vides.
Voir aussi mapfoldl, foldr, accumulate.
Exemples
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])Comme reduce, mais avec une associativité droite garantie. Si fourni, l'argument clé init sera utilisé exactement une fois. En général, il sera nécessaire de fournir init pour travailler avec des collections vides.
Exemples
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])Retourne le plus grand résultat de l'appel de la fonction f sur chaque élément de itr.
La valeur retournée pour un itr vide peut être spécifiée par init. Cela doit être un élément neutre pour max (c'est-à-dire qui est inférieur ou égal à tout autre élément) car il n'est pas spécifié si init est utilisé pour des collections non vides.
L'argument clé init nécessite Julia 1.6 ou une version ultérieure.
Exemples
julia> maximum(length, ["Julion", "Julia", "Jule"])
6
julia> maximum(length, []; init=-1)
-1
julia> maximum(sin, Real[]; init=-1.0) # bon, puisque la sortie de sin est >= -1
-1.0maximum(itr; [init])Retourne le plus grand élément d'une collection.
La valeur retournée pour un itr vide peut être spécifiée par init. Cela doit être un élément neutre pour max (c'est-à-dire qui est inférieur ou égal à tout autre élément) car il n'est pas précisé si init est utilisé pour des collections non vides.
L'argument clé init nécessite Julia 1.6 ou une version ultérieure.
Exemples
julia> maximum(-20.5:10)
9.5
julia> maximum([1,2,3])
3
julia> maximum(())
ERROR: ArgumentError: réduire sur une collection vide n'est pas autorisé ; envisagez de fournir `init` au réducteur
Stacktrace:
[...]
julia> maximum((); init=-Inf)
-Infmaximum(A::AbstractArray; dims)Calcule la valeur maximale d'un tableau sur les dimensions données. Voir aussi la fonction max(a,b) pour prendre le maximum de deux ou plusieurs arguments, qui peut être appliquée élément par élément aux tableaux via max.(a,b).
Voir aussi : maximum!, extrema, findmax, argmax.
Exemples
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)Calculez la valeur maximale en appelant la fonction f sur chaque élément d'un tableau sur les dimensions données.
Exemples
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)Calculez la valeur maximale de A sur les dimensions singleton de r, et écrivez les résultats dans r.
Le comportement peut être inattendu lorsque tout argument modifié partage de la mémoire avec un autre argument.
Exemples
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])Retourne le plus petit résultat de l'appel de la fonction f sur chaque élément de itr.
La valeur retournée pour un itr vide peut être spécifiée par init. Cela doit être un élément neutre pour min (c'est-à-dire qui est supérieur ou égal à tout autre élément) car il n'est pas spécifié si init est utilisé pour des collections non vides.
L'argument clé init nécessite Julia 1.6 ou une version ultérieure.
Exemples
julia> minimum(length, ["Julion", "Julia", "Jule"])
4
julia> minimum(length, []; init=typemax(Int64))
9223372036854775807
julia> minimum(sin, Real[]; init=1.0) # bon, puisque la sortie de sin est <= 1
1.0minimum(itr; [init])Retourne le plus petit élément d'une collection.
La valeur retournée pour un itr vide peut être spécifiée par init. Cela doit être un élément neutre pour min (c'est-à-dire qui est supérieur ou égal à tout autre élément) car il n'est pas précisé si init est utilisé pour des collections non vides.
L'argument clé init nécessite Julia 1.6 ou une version ultérieure.
Exemples
julia> minimum(-20.5:10)
-20.5
julia> minimum([1,2,3])
1
julia> minimum([])
ERROR: ArgumentError: reducing over an empty collection is not allowed; consider supplying `init` to the reducer
Stacktrace:
[...]
julia> minimum([]; init=Inf)
Infminimum(A::AbstractArray; dims)Calcule la valeur minimale d'un tableau sur les dimensions données. Voir aussi la fonction min(a,b) pour prendre le minimum de deux ou plusieurs arguments, qui peut être appliquée élément par élément aux tableaux via min.(a,b).
Voir aussi : minimum!, extrema, findmin, argmin.
Exemples
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)Calcule la valeur minimale en appelant la fonction f sur chaque élément d'un tableau sur les dimensions données.
Exemples
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)Calculez la valeur minimale de A sur les dimensions singleton de r, et écrivez les résultats dans r.
Le comportement peut être inattendu lorsque tout argument modifié partage de la mémoire avec un autre argument.
Exemples
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)Calculez à la fois l'élément minimum mn et l'élément maximum mx en un seul passage, et renvoyez-les sous forme de tuple de 2 éléments.
La valeur renvoyée pour un itr vide peut être spécifiée par init. Cela doit être un tuple de 2 éléments dont le premier et le deuxième éléments sont des éléments neutres pour min et max respectivement (c'est-à-dire qui sont supérieurs/inférieurs ou égaux à tout autre élément). En conséquence, lorsque itr est vide, le tuple renvoyé (mn, mx) satisfera mn ≥ mx. Lorsque init est spécifié, il peut être utilisé même pour un itr non vide.
L'argument clé init nécessite Julia 1.8 ou une version ultérieure.
Exemples
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)Calculez à la fois le minimum mn et le maximum mx de f appliqué à chaque élément de itr et renvoyez-les sous forme de tuple de 2 éléments. Une seule passe est effectuée sur itr.
La valeur renvoyée pour un itr vide peut être spécifiée par init. Cela doit être un tuple de 2 éléments dont le premier et le deuxième éléments sont des éléments neutres pour min et max respectivement (c'est-à-dire qui sont supérieurs/inférieurs ou égaux à tout autre élément). Il est utilisé pour des collections non vides. Remarque : cela implique que, pour un itr vide, la valeur renvoyée (mn, mx) satisfait mn ≥ mx même si pour un itr non vide, elle satisfait mn ≤ mx. C'est un résultat "paradoxal" mais néanmoins attendu.
Cette méthode nécessite Julia 1.2 ou une version ultérieure.
L'argument clé init nécessite Julia 1.8 ou une version ultérieure.
Exemples
julia> extrema(sin, 0:π)
(0.0, 0.9092974268256817)
julia> extrema(sin, Real[]; init = (1.0, -1.0)) # bon, puisque -1 ≤ sin(::Real) ≤ 1
(1.0, -1.0)extrema(A::AbstractArray; dims) -> Array{Tuple}Calcule les éléments minimum et maximum d'un tableau sur les dimensions données.
Voir aussi : minimum, maximum, extrema!.
Exemples
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}Calcule le minimum et le maximum de f appliqué à chaque élément dans les dimensions données de A.
Cette méthode nécessite Julia 1.2 ou une version ultérieure.
Base.extrema! — Functionextrema!(r, A)Calculez la valeur minimale et maximale de A sur les dimensions singleton de r, et écrivez les résultats dans r.
Le comportement peut être inattendu lorsque tout argument modifié partage de la mémoire avec un autre argument.
Cette méthode nécessite Julia 1.8 ou une version ultérieure.
Exemples
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)Les plages peuvent avoir plusieurs éléments maximaux. Dans ce cas, argmax renverra un index maximal, mais pas nécessairement le premier.
argmax(f, domaine)Retourne une valeur x de domaine pour laquelle f(x) est maximisé. S'il y a plusieurs valeurs maximales pour f(x), alors la première sera trouvée.
domaine doit être un itérable non vide.
Les valeurs sont comparées avec isless.
Cette méthode nécessite Julia 1.7 ou une version ultérieure.
Exemples
julia> argmax(abs, -10:5)
-10
julia> argmax(cos, 0:π/2:2π)
0.0argmax(itr)Retourne l'index ou la clé de l'élément maximal dans une collection. S'il y a plusieurs éléments maximaux, le premier sera retourné.
La collection ne doit pas être vide.
Les indices sont du même type que ceux retournés par keys(itr) et pairs(itr).
Les valeurs sont comparées avec isless.
Exemples
julia> argmax([8, 0.1, -9, pi])
1
julia> argmax([1, 7, 7, 6])
2
julia> argmax([1, 7, 7, NaN])
4argmax(A; dims) -> indicesPour une entrée de tableau, renvoie les indices des éléments maximaux sur les dimensions données. NaN est considéré comme supérieur à toutes les autres valeurs sauf missing.
Exemples
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)Les plages peuvent avoir plusieurs éléments minimaux. Dans ce cas, argmin renverra un index minimal, mais pas nécessairement le premier.
argmin(f, domaine)Retourne une valeur x de domaine pour laquelle f(x) est minimisé. S'il y a plusieurs valeurs minimales pour f(x), alors la première sera trouvée.
domaine doit être un itérable non vide.
NaN est considéré comme inférieur à toutes les autres valeurs sauf missing.
Cette méthode nécessite Julia 1.7 ou une version ultérieure.
Exemples
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)Renvoie l'index ou la clé de l'élément minimal dans une collection. S'il y a plusieurs éléments minimaux, le premier sera renvoyé.
La collection ne doit pas être vide.
Les indices sont du même type que ceux renvoyés par keys(itr) et pairs(itr).
NaN est considéré comme inférieur à toutes les autres valeurs sauf missing.
Exemples
julia> argmin([8, 0.1, -9, pi])
3
julia> argmin([7, 1, 1, 6])
2
julia> argmin([7, 1, 1, NaN])
4argmin(A; dims) -> indicesPour une entrée de tableau, renvoie les indices des éléments minimum sur les dimensions données. NaN est considéré comme inférieur à toutes les autres valeurs sauf missing.
Exemples
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)Retourne une paire d'une valeur dans le codomaine (sorties de f) et l'index ou la clé de la valeur correspondante dans le domain (entrées de f) telle que f(x) est maximisé. S'il y a plusieurs points maximaux, alors le premier sera retourné.
domain doit être un itérable non vide supportant keys. Les indices sont du même type que ceux retournés par keys(domain).
Les valeurs sont comparées avec isless.
Cette méthode nécessite Julia 1.7 ou version ultérieure.
Exemples
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)Retourne l'élément maximal de la collection itr et son index ou clé. S'il y a plusieurs éléments maximaux, le premier sera retourné. Les valeurs sont comparées avec isless.
Les indices sont du même type que ceux retournés par keys(itr) et pairs(itr).
Voir aussi : findmin, argmax, maximum.
Exemples
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)Pour une entrée de tableau, renvoie la valeur et l'index du maximum sur les dimensions données. NaN est considéré comme supérieur à toutes les autres valeurs sauf missing.
Exemples
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)Pour une entrée de tableau, renvoie la valeur dans le codomaine et l'index de la valeur correspondante qui maximise f sur les dimensions données.
Exemples
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)Retourne une paire d'une valeur dans le codomaine (sorties de f) et l'indice ou la clé de la valeur correspondante dans le domain (entrées de f) telle que f(x) est minimisé. S'il y a plusieurs points minimaux, alors le premier sera retourné.
domain doit être un itérable non vide.
Les indices sont du même type que ceux retournés par keys(domain) et pairs(domain).
NaN est considéré comme inférieur à toutes les autres valeurs sauf missing.
Cette méthode nécessite Julia 1.7 ou une version ultérieure.
Exemples
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)Retourne l'élément minimal de la collection itr et son index ou clé. S'il y a plusieurs éléments minimaux, le premier sera retourné. NaN est considéré comme inférieur à toutes les autres valeurs sauf missing.
Les indices sont du même type que ceux retournés par keys(itr) et pairs(itr).
Voir aussi : findmax, argmin, minimum.
Exemples
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)Pour une entrée de tableau, renvoie la valeur et l'index du minimum sur les dimensions données. NaN est considéré comme inférieur à toutes les autres valeurs sauf missing.
Exemples
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)Pour une entrée de tableau, renvoie la valeur dans le codomaine et l'index de la valeur correspondante qui minimise f sur les dimensions données.
Exemples
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)Trouvez le maximum de A et l'indice linéaire correspondant le long des dimensions singleton de rval et rind, et stockez les résultats dans rval et rind. NaN est considéré comme supérieur à toutes les autres valeurs sauf missing.
Le comportement peut être inattendu lorsque tout argument muté partage de la mémoire avec un autre argument.
Base.findmin! — Functionfindmin!(rval, rind, A) -> (minval, index)Trouvez le minimum de A et l'indice linéaire correspondant le long des dimensions singleton de rval et rind, et stockez les résultats dans rval et rind. NaN est considéré comme inférieur à toutes les autres valeurs sauf missing.
Le comportement peut être inattendu lorsque tout argument muté partage de la mémoire avec un autre argument.
Base.sum — Functionsum(f, itr; [init])Somme des résultats de l'appel de la fonction f sur chaque élément de itr.
Le type de retour est Int pour les entiers signés de moins de la taille de mot système, et UInt pour les entiers non signés de moins de la taille de mot système. Pour tous les autres arguments, un type de retour commun est trouvé auquel tous les arguments sont promus.
La valeur retournée pour un itr vide peut être spécifiée par init. Elle doit être l'identité additive (c'est-à-dire zéro) car il n'est pas précisé si init est utilisé pour des collections non vides.
L'argument clé init nécessite Julia 1.6 ou une version ultérieure.
Exemples
julia> sum(abs2, [2; 3; 4])
29Notez la différence importante entre sum(A) et reduce(+, A) pour les tableaux avec un type d'élément entier petit :
julia> sum(Int8[100, 28])
128
julia> reduce(+, Int8[100, 28])
-128Dans le premier cas, les entiers sont élargis à la taille de mot système et donc le résultat est 128. Dans le second cas, aucun élargissement n'a lieu et le débordement d'entier entraîne -128.
sum(itr; [init])Retourne la somme de tous les éléments d'une collection.
Le type de retour est Int pour les entiers signés de moins que la taille de mot système, et UInt pour les entiers non signés de moins que la taille de mot système. Pour tous les autres arguments, un type de retour commun est trouvé auquel tous les arguments sont promus.
La valeur retournée pour un itr vide peut être spécifiée par init. Elle doit être l'identité additive (c'est-à-dire zéro) car il n'est pas spécifié si init est utilisé pour des collections non vides.
L'argument clé init nécessite Julia 1.6 ou une version ultérieure.
Voir aussi : reduce, mapreduce, count, union.
Exemples
julia> sum(1:20)
210
julia> sum(1:20; init = 0.0)
210.0sum(A::AbstractArray; dims)Somme des éléments d'un tableau sur les dimensions données.
Exemples
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)Somme des résultats de l'appel de la fonction f sur chaque élément d'un tableau sur les dimensions données.
Exemples
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)Somme des éléments de A sur les dimensions singleton de r, et écrivez les résultats dans r.
Le comportement peut être inattendu lorsque tout argument modifié partage de la mémoire avec un autre argument.
Exemples
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])Renvoie le produit de f appliqué à chaque élément de itr.
Le type de retour est Int pour les entiers signés de moins de la taille de mot système, et UInt pour les entiers non signés de moins de la taille de mot système. Pour tous les autres arguments, un type de retour commun est trouvé auquel tous les arguments sont promus.
La valeur renvoyée pour un itr vide peut être spécifiée par init. Elle doit être l'identité multiplicative (c'est-à-dire un) car il n'est pas spécifié si init est utilisé pour des collections non vides.
L'argument clé init nécessite Julia 1.6 ou une version ultérieure.
Exemples
julia> prod(abs2, [2; 3; 4])
576prod(itr; [init])Retourne le produit de tous les éléments d'une collection.
Le type de retour est Int pour les entiers signés de moins que la taille de mot système, et UInt pour les entiers non signés de moins que la taille de mot système. Pour tous les autres arguments, un type de retour commun est trouvé auquel tous les arguments sont promus.
La valeur retournée pour un itr vide peut être spécifiée par init. Elle doit être l'identité multiplicative (c'est-à-dire un) car il n'est pas spécifié si init est utilisé pour des collections non vides.
L'argument clé init nécessite Julia 1.6 ou une version ultérieure.
Voir aussi : reduce, cumprod, any.
Exemples
julia> prod(1:5)
120
julia> prod(1:5; init = 1.0)
120.0prod(A::AbstractArray; dims)Multipliez les éléments d'un tableau sur les dimensions données.
Exemples
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)Multipliez les résultats de l'appel de la fonction f sur chaque élément d'un tableau sur les dimensions données.
Exemples
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)Multiplie les éléments de A sur les dimensions singleton de r, et écris les résultats dans r.
Le comportement peut être inattendu lorsque tout argument modifié partage de la mémoire avec un autre argument.
Exemples
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) -> BoolTestez si des éléments d'une collection booléenne sont true, retournant true dès que la première valeur true dans itr est rencontrée (court-circuit). Pour court-circuiter sur false, utilisez all.
Si l'entrée contient des valeurs missing, retournez missing si toutes les valeurs non manquantes sont false (ou équivalemment, si l'entrée ne contient aucune valeur true), suivant la logique à trois valeurs.
Voir aussi : all, count, sum, |, , ||.
Exemples
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) -> BoolDéterminez si le prédicat p renvoie true pour des éléments de itr, renvoyant true dès que le premier élément de itr pour lequel p renvoie true est rencontré (court-circuit). Pour court-circuiter sur false, utilisez all.
Si l'entrée contient des valeurs missing, renvoyez missing si toutes les valeurs non manquantes sont false (ou équivalemment, si l'entrée ne contient aucune valeur true), suivant la logique à trois valeurs.
Exemples
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)Testez si des valeurs dans A le long des dimensions singleton de r sont true, et écrivez les résultats dans r.
Le comportement peut être inattendu lorsque tout argument modifié partage de la mémoire avec un autre argument.
Exemples
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) -> BoolTestez si tous les éléments d'une collection booléenne sont true, retournant false dès que la première valeur false dans itr est rencontrée (court-circuit). Pour court-circuiter sur true, utilisez any.
Si l'entrée contient des valeurs missing, retournez missing si toutes les valeurs non manquantes sont true (ou équivalemment, si l'entrée ne contient aucune valeur false), suivant la logique à trois valeurs.
Voir aussi : all!, any, count, &, , &&, allunique.
Exemples
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) -> BoolDéterminez si le prédicat p renvoie true pour tous les éléments de itr, renvoyant false dès que le premier élément de itr pour lequel p renvoie false est rencontré (court-circuit). Pour court-circuiter sur true, utilisez any.
Si l'entrée contient des valeurs missing, renvoyez missing si toutes les valeurs non manquantes sont true (ou équivalemment, si l'entrée ne contient aucune valeur false), suivant la logique à trois valeurs.
Exemples
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)Testez si toutes les valeurs de A le long des dimensions singleton de r sont true, et écrivez les résultats dans r.
Le comportement peut être inattendu lorsque tout argument modifié partage de la mémoire avec un autre argument.
Exemples
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) -> IntegerComptez le nombre d'éléments dans itr pour lesquels la fonction f renvoie true. Si f est omis, comptez le nombre d'éléments true dans itr (qui devrait être une collection de valeurs booléennes). init spécifie en option la valeur à partir de laquelle commencer le comptage et détermine donc également le type de sortie.
Le mot-clé init a été ajouté dans Julia 1.6.
Exemples
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,
)Retourne le nombre de correspondances pour pattern dans string. Cela équivaut à appeler length(findall(pattern, string)) mais de manière plus efficace.
Si overlap=true, les séquences correspondantes sont autorisées à se chevaucher dans les indices de la chaîne d'origine, sinon elles doivent provenir de plages de caractères disjointes.
Cette méthode nécessite au moins Julia 1.3.
Utiliser un caractère comme motif nécessite au moins Julia 1.7.
Exemples
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=:)Comptez le nombre d'éléments dans A pour lesquels f renvoie true sur les dimensions données.
Le mot-clé dims a été ajouté dans Julia 1.5.
Le mot-clé init a été ajouté dans Julia 1.6.
Exemples
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...) -> RienAppelle la fonction f sur chaque élément de l'itérable c. Pour plusieurs arguments itérables, f est appelé élément par élément, et l'itération s'arrête lorsque n'importe quel itérateur est terminé.
foreach doit être utilisé au lieu de map lorsque les résultats de f ne sont pas nécessaires, par exemple dans foreach(println, array).
Exemples
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, " avec ", y), tri, 'a':'z')
1 avec a
4 avec b
7 avec cBase.map — Functionmap(f, c...) -> collectionTransformez la collection c en appliquant f à chaque élément. Pour plusieurs arguments de collection, appliquez f élément par élément, et arrêtez-vous lorsque l'un d'eux est épuisé.
Voir aussi map!, foreach, mapreduce, mapslices, zip, Iterators.map.
Exemples
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-arrayLorsqu'il agit sur des tableaux multidimensionnels de la même ndims, ils doivent tous avoir les mêmes axes, et la réponse le sera aussi.
Voir aussi broadcast, qui permet des tailles non correspondantes.
Exemples
julia> map(//, [1 2; 3 4], [4 3; 2 1])
2×2 Matrix{Rational{Int64}}:
1//4 2//3
3//2 4//1
julia> map(+, [1 2; 3 4], zeros(2,1))
ERROR: DimensionMismatch
julia> map(+, [1 2; 3 4], [1,10,100,1000], zeros(3,1)) # itère jusqu'à ce que le 3ème soit épuisé
3-element Vector{Float64}:
2.0
13.0
102.0Base.map! — Functionmap!(function, destination, collection...)Comme map, mais stocke le résultat dans destination plutôt que dans une nouvelle collection. destination doit être au moins aussi grand que la plus petite collection.
Le comportement peut être inattendu lorsque tout argument muté partage de la mémoire avec un autre argument.
Voir aussi : map, foreach, zip, copyto!.
Exemples
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))Modifie dict en transformant chaque valeur de val en f(val). Notez que le type de dict ne peut pas être changé : si f(val) n'est pas une instance du type de valeur de dict, alors il sera converti en type de valeur si possible et sinon, une erreur sera levée.
map!(f, values(dict::AbstractDict)) nécessite Julia 1.2 ou une version ultérieure.
Exemples
julia> d = Dict(:a => 1, :b => 2)
Dict{Symbol, Int64} avec 2 entrées :
:a => 1
:b => 2
julia> map!(v -> v-1, values(d))
ValueIterator pour un Dict{Symbol, Int64} avec 2 entrées. Valeurs :
0
1Base.mapreduce — Methodmapreduce(f, op, itrs...; [init])Applique la fonction f à chaque élément(s) dans itrs, puis réduit le résultat en utilisant la fonction binaire op. Si fourni, init doit être un élément neutre pour op qui sera retourné pour les collections vides. Il n'est pas spécifié si init est utilisé pour les collections non vides. En général, il sera nécessaire de fournir init pour travailler avec des collections vides.
mapreduce est fonctionnellement équivalent à appeler reduce(op, map(f, itr); init=init), mais s'exécutera généralement plus rapidement car aucune collection intermédiaire n'a besoin d'être créée. Voir la documentation pour reduce et map.
mapreduce avec plusieurs itérateurs nécessite Julia 1.2 ou une version ultérieure.
Exemples
julia> mapreduce(x->x^2, +, [1:3;]) # == 1 + 4 + 9
14L'associativité de la réduction dépend de l'implémentation. De plus, certaines implémentations peuvent réutiliser la valeur de retour de f pour les éléments qui apparaissent plusieurs fois dans itr. Utilisez mapfoldl ou mapfoldr à la place pour garantir l'associativité gauche ou droite et l'invocation de f pour chaque valeur.
Base.mapfoldl — Methodmapfoldl(f, op, itr; [init])Comme mapreduce, mais avec une associativité gauche garantie, comme dans foldl. Si fourni, l'argument clé init sera utilisé exactement une fois. En général, il sera nécessaire de fournir init pour travailler avec des collections vides.
Base.mapfoldr — Methodmapfoldr(f, op, itr; [init])Comme mapreduce, mais avec une associativité à droite garantie, comme dans foldr. Si fourni, l'argument clé init sera utilisé exactement une fois. En général, il sera nécessaire de fournir init pour travailler avec des collections vides.
Base.first — Functionfirst(coll)Obtenez le premier élément d'une collection itérable. Retournez le point de départ d'un AbstractRange même s'il est vide.
Voir aussi : only, firstindex, last.
Exemples
julia> first(2:2:10)
2
julia> first([1; 2; 3; 4])
1first(itr, n::Integer)Obtenez les premiers n éléments de la collection itérable itr, ou moins d'éléments si itr n'est pas assez long.
Voir aussi : startswith, Iterators.take.
Cette méthode nécessite au moins Julia 1.6.
Exemples
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)Obtenez une chaîne composée des premiers n caractères de s.
Exemples
julia> first("∀ϵ≠0: ϵ²>0", 0)
""
julia> first("∀ϵ≠0: ϵ²>0", 1)
"∀"
julia> first("∀ϵ≠0: ϵ²>0", 3)
"∀ϵ≠"Base.last — Functionlast(coll)Obtenez le dernier élément d'une collection ordonnée, si cela peut être calculé en O(1) temps. Cela est accompli en appelant lastindex pour obtenir le dernier index. Retournez le point final d'un AbstractRange même s'il est vide.
Exemples
julia> last(1:2:10)
9
julia> last([1; 2; 3; 4])
4last(itr, n::Integer)Obtenez les derniers n éléments de la collection itérable itr, ou moins d'éléments si itr n'est pas assez long.
Cette méthode nécessite au moins Julia 1.6.
Exemples
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)Obtenez une chaîne composée des derniers n caractères de s.
Exemples
julia> last("∀ϵ≠0: ϵ²>0", 0)
""
julia> last("∀ϵ≠0: ϵ²>0", 1)
"0"
julia> last("∀ϵ≠0: ϵ²>0", 3)
"²>0"Base.front — Functionfront(x::Tuple)::TupleRetourne un Tuple consistant de tous les composants sauf le dernier de x.
Exemples
julia> Base.front((1,2,3))
(1, 2)
julia> Base.front(())
ERROR: ArgumentError: Cannot call front on an empty tuple.Base.tail — Functiontail(x::Tuple)::TupleRenvoie un Tuple contenant tous les composants sauf le premier de x.
Voir aussi : front, rest, first, Iterators.peel.
Exemples
julia> Base.tail((1,2,3))
(2, 3)
julia> Base.tail(())
ERROR: ArgumentError: Cannot call tail on an empty tuple.Base.step — Functionstep(r)Obtenez la taille du pas d'un objet AbstractRange.
Exemples
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)Renvoie un Array de tous les éléments d'une collection ou d'un itérateur. Pour les dictionnaires, renvoie un Vector de key=>value Pairs. Si l'argument est de type tableau ou est un itérateur avec le trait HasShape, le résultat aura la même forme et le même nombre de dimensions que l'argument.
Utilisé par les compréhensions pour transformer une expression génératrice en un Array. Ainsi, sur les générateurs, la notation entre crochets peut être utilisée au lieu d'appeler collect, voir le deuxième exemple.
Exemples
Collecter des éléments d'une collection UnitRange{Int64} :
julia> collect(1:3)
3-element Vector{Int64}:
1
2
3Collecter des éléments d'un générateur (même sortie que [x^2 for x in 1:3]) :
julia> collect(x^2 for x in 1:3)
3-element Vector{Int64}:
1
4
9Base.collect — Methodcollect(type_d_element, collection)Renvoie un Array avec le type d'élément donné de tous les éléments d'une collection ou d'un itérable. Le résultat a la même forme et le même nombre de dimensions que collection.
Exemples
julia> collect(Float64, 1:2:5)
3-element Vector{Float64}:
1.0
3.0
5.0Base.filter — Functionfilter(f, a)Renvoie une copie de la collection a, en supprimant les éléments pour lesquels f est false. La fonction f reçoit un argument.
Le support de a en tant que tuple nécessite au moins Julia 1.4.
Voir aussi : filter!, Iterators.filter.
Exemples
julia> a = 1:10
1:10
julia> filter(isodd, a)
5-element Vector{Int64}:
1
3
5
7
9filter(f)Créez une fonction qui filtre ses arguments avec la fonction f en utilisant filter, c'est-à-dire une fonction équivalente à x -> filter(f, x).
La fonction retournée est de type Base.Fix1{typeof(filter)}, qui peut être utilisée pour implémenter des méthodes spécialisées.
Exemples
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]Cette méthode nécessite au moins Julia 1.9.
filter(f, d::AbstractDict)Retourne une copie de d, en supprimant les éléments pour lesquels f est false. La fonction f reçoit des paires key=>value.
Exemples
julia> d = Dict(1=>"a", 2=>"b")
Dict{Int64, String} avec 2 entrées :
2 => "b"
1 => "a"
julia> filter(p->isodd(p.first), d)
Dict{Int64, String} avec 1 entrée :
1 => "a"filter(f, itr::SkipMissing{<:AbstractArray})Renvoie un vecteur similaire au tableau enveloppé par l'itérateur SkipMissing donné, mais avec tous les éléments manquants et ceux pour lesquels f renvoie false supprimés.
Cette méthode nécessite Julia 1.2 ou une version ultérieure.
Exemples
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)Met à jour la collection a, en supprimant les éléments pour lesquels f est false. La fonction f reçoit un argument.
Exemples
julia> filter!(isodd, Vector(1:10))
5-element Vector{Int64}:
1
3
5
7
9filter!(f, d::AbstractDict)Met à jour d, en supprimant les éléments pour lesquels f est false. La fonction f reçoit des paires key=>value.
Exemples
julia> d = Dict(1=>"a", 2=>"b", 3=>"c")
Dict{Int64, String} avec 3 entrées :
2 => "b"
3 => "c"
1 => "a"
julia> filter!(p->isodd(p.first), d)
Dict{Int64, String} avec 2 entrées :
3 => "c"
1 => "a"Base.replace — Methodreplace(A, old_new::Pair...; [count::Integer])Renvoie une copie de la collection A où, pour chaque paire old=>new dans old_new, toutes les occurrences de old sont remplacées par new. L'égalité est déterminée en utilisant isequal. Si count est spécifié, alors remplace au maximum count occurrences au total.
Le type d'élément du résultat est choisi en utilisant la promotion (voir promote_type) en fonction du type d'élément de A et des types des valeurs new dans les paires. Si count est omis et que le type d'élément de A est un Union, le type d'élément du résultat n'inclura pas les types singleton qui sont remplacés par des valeurs d'un type différent : par exemple, Union{T,Missing} deviendra T si missing est remplacé.
Voir aussi replace!, splice!, delete!, insert!.
La version 1.7 est requise pour remplacer des éléments d'un Tuple.
Exemples
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])Retourne une copie de A où chaque valeur x dans A est remplacée par new(x). Si count est spécifié, alors remplace au maximum count valeurs au total (les remplacements étant définis comme new(x) !== x).
La version 1.7 est requise pour remplacer des éléments d'un Tuple.
Exemples
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, old_new::Pair...; [count::Integer])Pour chaque paire old=>new dans old_new, remplacez toutes les occurrences de old dans la collection A par new. L'égalité est déterminée en utilisant isequal. Si count est spécifié, alors remplacez au maximum count occurrences au total. Voir aussi replace.
Exemples
julia> replace!([1, 2, 1, 3], 1=>0, 2=>4, count=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])Remplace chaque élément x dans la collection A par new(x). Si count est spécifié, alors remplace au maximum count valeurs au total (les remplacements étant définis comme new(x) !== x).
Exemples
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])Fonction générique pour prendre la queue de collection, à partir d'un état d'itération spécifique itr_state. Retourne un Tuple, si collection elle-même est un Tuple, un sous-type de AbstractVector, si collection est un AbstractArray, un sous-type de AbstractString si collection est un AbstractString, et un itérateur arbitraire, revenant à Iterators.rest(collection[, itr_state]), sinon.
Peut être surchargé pour des types de collection définis par l'utilisateur afin de personnaliser le comportement de slurping in assignments en position finale, comme a, b... = collection.
Base.rest nécessite au moins Julia 1.6.
Voir aussi : first, Iterators.rest, Base.split_rest.
Exemples
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)Fonction générique pour diviser la queue de collection, à partir d'un état d'itération spécifique itr_state. Renvoie un tuple de deux nouvelles collections. La première contient tous les éléments de la queue sauf les n derniers, qui constituent la deuxième collection.
Le type de la première collection suit généralement celui de Base.rest, sauf que le cas de repli n'est pas paresseux, mais est collecté de manière proactive dans un vecteur.
Peut être surchargé pour des types de collection définis par l'utilisateur afin de personnaliser le comportement de l'absorption dans les affectations en position non finale, comme a, b..., c = collection.
Base.split_rest nécessite au moins Julia 1.9.
Voir aussi : Base.rest.
Exemples
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(collection, key...)Récupère la ou les valeurs stockées à la clé ou à l'index donné dans une collection. La syntaxe a[i,j,...] est convertie par le compilateur en getindex(a, i, j, ...).
Voir aussi get, keys, eachindex.
Exemples
julia> A = Dict("a" => 1, "b" => 2)
Dict{String, Int64} avec 2 entrées :
"b" => 2
"a" => 1
julia> getindex(A, "a")
1Base.setindex! — Functionsetindex!(collection, value, key...)Stockez la valeur donnée à la clé ou à l'index donné dans une collection. La syntaxe a[i,j,...] = x est convertie par le compilateur en (setindex!(a, x, i, j, ...); x).
Exemples
julia> a = Dict("a"=>1)
Dict{String, Int64} avec 1 entrée :
"a" => 1
julia> setindex!(a, 2, "b")
Dict{String, Int64} avec 2 entrées :
"b" => 2
"a" => 1Base.firstindex — Functionfirstindex(collection) -> Integer
firstindex(collection, d) -> IntegerRetourne le premier index de collection. Si d est donné, retourne le premier index de collection le long de la dimension d.
Les syntaxes A[begin] et A[1, begin] se traduisent par A[firstindex(A)] et A[1, firstindex(A, 2)], respectivement.
Voir aussi : first, axes, lastindex, nextind.
Exemples
julia> firstindex([1,2,4])
1
julia> firstindex(rand(3,4,5), 2)
1Base.lastindex — Functionlastindex(collection) -> Integer
lastindex(collection, d) -> IntegerRetourne le dernier index de collection. Si d est donné, retourne le dernier index de collection le long de la dimension d.
Les syntaxes A[end] et A[end, end] se traduisent par A[lastindex(A)] et A[lastindex(A, 1), lastindex(A, 2)], respectivement.
Voir aussi : axes, firstindex, eachindex, prevind.
Exemples
julia> lastindex([1,2,4])
3
julia> lastindex(rand(3,4,5), 2)
4Entièrement mis en œuvre par :
ArrayBitArrayAbstractArraySousTableau
Partiellement mis en œuvre par :
Dictionaries
Dict est le dictionnaire standard. Son implémentation utilise hash comme fonction de hachage pour la clé, et isequal pour déterminer l'égalité. Définissez ces deux fonctions pour des types personnalisés afin de remplacer la façon dont ils sont stockés dans une table de hachage.
IdDict est une table de hachage spéciale où les clés sont toujours des identités d'objet.
WeakKeyDict est une implémentation de table de hachage où les clés sont des références faibles à des objets, et peuvent donc être collectées par le ramasse-miettes même lorsqu'elles sont référencées dans une table de hachage. Comme Dict, elle utilise hash pour le hachage et isequal pour l'égalité, contrairement à Dict, elle ne convertit pas les clés lors de l'insertion.
Dict peut être créé en passant des objets de paire construits avec => à un constructeur 4d61726b646f776e2e436f64652822222c2022446963742229_40726566 : Dict("A"=>1, "B"=>2). Cet appel tentera d'inférer des informations de type à partir des clés et des valeurs (c'est-à-dire que cet exemple crée un Dict{String, Int64}). Pour spécifier explicitement les types, utilisez la syntaxe Dict{KeyType,ValueType}(...). Par exemple, Dict{String,Int32}("A"=>1, "B"=>2).
Les dictionnaires peuvent également être créés avec des générateurs. Par exemple, Dict(i => f(i) for i = 1:10).
Étant donné un dictionnaire D, la syntaxe D[x] renvoie la valeur de la clé x (si elle existe) ou génère une erreur, et D[x] = y stocke la paire clé-valeur x => y dans D (remplaçant toute valeur existante pour la clé x). Plusieurs arguments pour D[...] sont convertis en tuples ; par exemple, la syntaxe D[x,y] est équivalente à D[(x,y)], c'est-à-dire qu'elle fait référence à la valeur indexée par le tuple (x,y).
Base.AbstractDict — TypeAbstractDict{K, V}Supertype pour les types similaires à des dictionnaires avec des clés de type K et des valeurs de type V. Dict, IdDict et d'autres types sont des sous-types de celui-ci. Un AbstractDict{K, V} devrait être un itérateur de Pair{K, V}.
Base.Dict — TypeDict([itr])Dict{K,V}() construit une table de hachage avec des clés de type K et des valeurs de type V. Les clés sont comparées avec isequal et hachées avec hash.
Étant donné un seul argument itérable, construit un Dict dont les paires clé-valeur sont tirées de 2-uplets (clé,valeur) générés par l'argument.
Exemples
julia> Dict([("A", 1), ("B", 2)])
Dict{String, Int64} avec 2 entrées :
"B" => 2
"A" => 1Alternativement, une séquence d'arguments de paires peut être passée.
julia> Dict("A"=>1, "B"=>2)
Dict{String, Int64} avec 2 entrées :
"B" => 2
"A" => 1Les clés peuvent être mutables, mais si vous modifiez des clés stockées, la table de hachage peut devenir inconsistente en interne, auquel cas le Dict ne fonctionnera pas correctement. IdDict peut être une alternative si vous devez modifier des clés.
Base.IdDict — TypeIdDict([itr])IdDict{K,V}() construit une table de hachage en utilisant objectid comme hachage et === comme égalité avec des clés de type K et des valeurs de type V. Voir Dict pour plus d'aide et IdSet pour la version ensemble de cela.
Dans l'exemple ci-dessous, les clés de Dict sont toutes isequal et sont donc hachées de la même manière, elles sont donc écrasées. L'IdDict hache par identifiant d'objet, et préserve donc les 3 clés différentes.
Exemples
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() construit une table de hachage où les clés sont des références faibles à des objets qui peuvent être collectés par le ramasse-miettes même lorsqu'ils sont référencés dans une table de hachage.
Voir Dict pour plus d'aide. Notez que, contrairement à Dict, WeakKeyDict ne convertit pas les clés lors de l'insertion, car cela impliquerait que l'objet clé n'était référencé nulle part avant l'insertion.
Voir aussi WeakRef.
Base.ImmutableDict — TypeImmutableDictImmutableDict est un dictionnaire implémenté comme une liste chaînée immuable, qui est optimal pour les petits dictionnaires construits à partir de nombreuses insertions individuelles. Notez qu'il n'est pas possible de supprimer une valeur, bien qu'elle puisse être partiellement remplacée et cachée en insérant une nouvelle valeur avec la même clé.
ImmutableDict(KV::Pair)Créez une nouvelle entrée dans le ImmutableDict pour une paire clé => valeur
- utilisez
(clé => valeur) in dictpour voir si cette combinaison particulière est dans l'ensemble des propriétés - utilisez
get(dict, clé, défaut)pour récupérer la valeur la plus récente pour une clé particulière
Base.PersistentDict — TypePersistentDictPersistentDict est un dictionnaire implémenté comme un trie mappé par tableau de hachage, qui est optimal pour les situations où vous avez besoin de persistance, chaque opération renvoie un nouveau dictionnaire distinct du précédent, mais l'implémentation sous-jacente est efficace en termes d'espace et peut partager le stockage entre plusieurs dictionnaires distincts.
Il se comporte comme un IdDict.
PersistentDict(KV::Pair)Exemples
julia> dict = Base.PersistentDict(:a=>1)
Base.PersistentDict{Symbol, Int64} avec 1 entrée :
:a => 1
julia> dict2 = Base.delete(dict, :a)
Base.PersistentDict{Symbol, Int64}()
julia> dict3 = Base.PersistentDict(dict, :a=>2)
Base.PersistentDict{Symbol, Int64} avec 1 entrée :
:a => 2Base.haskey — Functionhaskey(collection, key) -> BoolDéterminez si une collection a une correspondance pour une key donnée.
Exemples
julia> D = Dict('a'=>2, 'b'=>3)
Dict{Char, Int64} avec 2 entrées :
'a' => 2
'b' => 3
julia> haskey(D, 'a')
true
julia> haskey(D, 'c')
falseBase.get — Functionget(collection, key, default)Retourne la valeur stockée pour la clé donnée, ou la valeur par défaut donnée si aucune correspondance pour la clé n'est présente.
Pour les tuples et les nombres, cette fonction nécessite au moins Julia 1.7.
Exemples
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)Retourne la valeur stockée pour la clé donnée, ou si aucune correspondance pour la clé n'est présente, retourne f(). Utilisez get! pour également stocker la valeur par défaut dans le dictionnaire.
Ceci est destiné à être appelé en utilisant la syntaxe de bloc do
get(dict, key) do
# valeur par défaut calculée ici
time()
endBase.get! — Functionget!(collection, key, default)Retourne la valeur stockée pour la clé donnée, ou si aucune correspondance pour la clé n'est présente, stocke key => default, et retourne default.
Exemples
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} avec 4 entrées :
"c" => 3
"b" => 2
"a" => 1
"d" => 4get!(f::Union{Function, Type}, collection, key)Retourne la valeur stockée pour la clé donnée, ou si aucune correspondance pour la clé n'est présente, stocke key => f(), et retourne f().
Ceci est destiné à être appelé en utilisant la syntaxe de bloc do.
Exemples
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(collection, key, default)Retourne la clé correspondant à l'argument key si elle existe dans collection, sinon retourne default.
Exemples
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 (category Ll: Letter, lowercase)
julia> getkey(D, 'd', 'a')
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)Base.delete! — Functiondelete!(collection, key)Supprime la correspondance pour la clé donnée dans une collection, le cas échéant, et renvoie la collection.
Exemples
julia> d = Dict("a"=>1, "b"=>2)
Dict{String, Int64} avec 2 entrées :
"b" => 2
"a" => 1
julia> delete!(d, "b")
Dict{String, Int64} avec 1 entrée :
"a" => 1
julia> delete!(d, "b") # d reste inchangé
Dict{String, Int64} avec 1 entrée :
"a" => 1Base.pop! — Methodpop!(collection, key[, default])Supprime et retourne le mappage pour key s'il existe dans collection, sinon retourne default, ou lance une erreur si default n'est pas spécifié.
Exemples
julia> d = Dict("a"=>1, "b"=>2, "c"=>3);
julia> pop!(d, "a")
1
julia> pop!(d, "d")
ERROR: KeyError: key "d" not found
Stacktrace:
[...]
julia> pop!(d, "e", 4)
4Base.keys — Functionkeys(iterator)Pour un itérateur ou une collection qui a des clés et des valeurs (par exemple, des tableaux et des dictionnaires), renvoie un itérateur sur les clés.
Base.values — Functionvalues(iterator)Pour un itérateur ou une collection qui a des clés et des valeurs, renvoie un itérateur sur les valeurs. Cette fonction renvoie simplement son argument par défaut, puisque les éléments d'un itérateur général sont normalement considérés comme ses "valeurs".
Exemples
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)Renvoie un itérateur sur toutes les valeurs d'une collection. collect(values(a)) renvoie un tableau de valeurs. Lorsque les valeurs sont stockées en interne dans une table de hachage, comme c'est le cas pour Dict, l'ordre dans lequel elles sont renvoyées peut varier. Mais keys(a), values(a) et pairs(a) itèrent tous a et renvoient les éléments dans le même ordre.
Exemples
julia> D = Dict('a'=>2, 'b'=>3)
Dict{Char, Int64} avec 2 entrées :
'a' => 2
'b' => 3
julia> collect(values(D))
Vecteur{Int64} de 2 éléments :
2
3Base.pairs — Functionpairs(IndexLinear(), A)
pairs(IndexCartesian(), A)
pairs(IndexStyle(A), A)Un itérateur qui accède à chaque élément du tableau A, retournant i => x, où i est l'indice de l'élément et x = A[i]. Identique à pairs(A), sauf que le style de l'indice peut être sélectionné. Également similaire à enumerate(A), sauf que i sera un indice valide pour A, tandis que enumerate compte toujours à partir de 1, indépendamment des indices de A.
Spécifier IndexLinear() garantit que i sera un entier ; spécifier IndexCartesian() garantit que i sera un Base.CartesianIndex ; spécifier IndexStyle(A) choisit celui qui a été défini comme le style d'indexation natif pour le tableau A.
La mutation des limites du tableau sous-jacent invalidera cet itérateur.
Exemples
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) eVoir aussi IndexStyle, axes.
pairs(collection)Renvoie un itérateur sur des paires clé => valeur pour toute collection qui associe un ensemble de clés à un ensemble de valeurs. Cela inclut les tableaux, où les clés sont les indices du tableau. Lorsque les entrées sont stockées en interne dans une table de hachage, comme c'est le cas pour Dict, l'ordre dans lequel elles sont renvoyées peut varier. Mais keys(a), values(a) et pairs(a) itèrent tous a et renvoient les éléments dans le même ordre.
Exemples
julia> a = Dict(zip(["a", "b", "c"], [1, 2, 3]))
Dict{String, Int64} avec 3 entrées :
"c" => 3
"b" => 2
"a" => 1
julia> pairs(a)
Dict{String, Int64} avec 3 entrées :
"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
Vecteur de 3 éléments{Pair{Symbol, Int64}} :
:a => 1
:b => 2
:c => 3
julia> (;a=1, b=2, c=3) |> collect
Vecteur de 3 éléments{Int64} :
1
2
3Base.merge — Functionmerge(initial::Face, others::Face...)Fusionner les propriétés du visage initial et des autres, les visages ultérieurs ayant la priorité.
merge(d::AbstractDict, others::AbstractDict...)Construit une collection fusionnée à partir des collections données. Si nécessaire, les types de la collection résultante seront promus pour s'adapter aux types des collections fusionnées. Si la même clé est présente dans une autre collection, la valeur pour cette clé sera celle qu'elle a dans la dernière collection listée. Voir aussi mergewith pour un traitement personnalisé des valeurs avec la même clé.
Exemples
julia> a = Dict("foo" => 0.0, "bar" => 42.0)
Dict{String, Float64} avec 2 entrées :
"bar" => 42.0
"foo" => 0.0
julia> b = Dict("baz" => 17, "bar" => 4711)
Dict{String, Int64} avec 2 entrées :
"bar" => 4711
"baz" => 17
julia> merge(a, b)
Dict{String, Float64} avec 3 entrées :
"bar" => 4711.0
"baz" => 17.0
"foo" => 0.0
julia> merge(b, a)
Dict{String, Float64} avec 3 entrées :
"bar" => 42.0
"baz" => 17.0
"foo" => 0.0merge(a::NamedTuple, bs::NamedTuple...)Construit un nouveau tuple nommé en fusionnant deux ou plusieurs existants, de manière associative à gauche. La fusion se fait de gauche à droite, entre des paires de tuples nommés, et ainsi l'ordre des champs présents dans les tuples nommés les plus à gauche et les plus à droite prend la même position que celle trouvée dans le tuple nommé le plus à gauche. Cependant, les valeurs sont prises à partir des champs correspondants dans le tuple nommé le plus à droite qui contient ce champ. Les champs présents uniquement dans le tuple nommé le plus à droite d'une paire sont ajoutés à la fin. Un fallback est implémenté pour le cas où un seul tuple nommé est fourni, avec la signature merge(a::NamedTuple).
La fusion de 3 tuples nommés ou plus nécessite au moins Julia 1.1.
Exemples
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)Interprète un itérable de paires clé-valeur comme un tuple nommé, et effectue une fusion.
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...)Construisez une collection fusionnée à partir des collections données. Si nécessaire, les types de la collection résultante seront promus pour s'adapter aux types des collections fusionnées. Les valeurs ayant la même clé seront combinées à l'aide de la fonction de combinaison. La forme curried mergewith(combine) renvoie la fonction (args...) -> mergewith(combine, args...).
La méthode merge(combine::Union{Function,Type}, args...) en tant qu'alias de mergewith(combine, args...) est toujours disponible pour la compatibilité ascendante.
mergewith nécessite Julia 1.5 ou une version ultérieure.
Exemples
julia> a = Dict("foo" => 0.0, "bar" => 42.0)
Dict{String, Float64} avec 2 entrées :
"bar" => 42.0
"foo" => 0.0
julia> b = Dict("baz" => 17, "bar" => 4711)
Dict{String, Int64} avec 2 entrées :
"bar" => 4711
"baz" => 17
julia> mergewith(+, a, b)
Dict{String, Float64} avec 3 entrées :
"bar" => 4753.0
"baz" => 17.0
"foo" => 0.0
julia> ans == mergewith(+)(a, b)
trueBase.merge! — Functionmerge!(d::AbstractDict, others::AbstractDict...)Met à jour la collection avec des paires des autres collections. Voir aussi merge.
Exemples
julia> d1 = Dict(1 => 2, 3 => 4);
julia> d2 = Dict(1 => 4, 4 => 5);
julia> merge!(d1, d2);
julia> d1
Dict{Int64, Int64} avec 3 entrées :
4 => 5
3 => 4
1 => 4Base.mergewith! — Functionmergewith!(combine, d::AbstractDict, others::AbstractDict...) -> d
mergewith!(combine)
merge!(combine, d::AbstractDict, others::AbstractDict...) -> dMet à jour la collection avec des paires provenant des autres collections. Les valeurs ayant la même clé seront combinées à l'aide de la fonction de combinaison. La forme curryée mergewith!(combine) renvoie la fonction (args...) -> mergewith!(combine, args...).
La méthode merge!(combine::Union{Function,Type}, args...) en tant qu'alias de mergewith!(combine, args...) est toujours disponible pour la compatibilité ascendante.
mergewith! nécessite Julia 1.5 ou une version ultérieure.
Exemples
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) -> sSuggérez que la collection s réserve une capacité d'au moins n éléments. C'est-à-dire que si vous vous attendez à devoir ajouter beaucoup de valeurs à s, vous pouvez éviter le coût de la réallocation incrémentale en le faisant une fois au départ ; cela peut améliorer les performances.
Si first est true, alors tout espace supplémentaire est réservé avant le début de la collection. De cette façon, les appels ultérieurs à pushfirst! (au lieu de push!) peuvent devenir plus rapides. Fournir ce mot-clé peut entraîner une erreur si la collection n'est pas ordonnée ou si pushfirst! n'est pas pris en charge pour cette collection.
Si shrink=true (par défaut), la capacité de la collection peut être réduite si sa capacité actuelle est supérieure à n.
Voir aussi resize!.
Remarques sur le modèle de performance
Pour les types qui prennent en charge sizehint!,
- Les méthodes
push!etappend!peuvent généralement (mais ne sont pas tenues de) préallouer un stockage supplémentaire. Pour les types implémentés dansBase, elles le font généralement, en utilisant une heuristique optimisée pour un cas d'utilisation général. sizehint!peut contrôler cette préallocation. Encore une fois, cela le fait généralement pour les types dansBase.empty!est presque sans coût (et O(1)) pour les types qui prennent en charge ce type de préallocation.
Les arguments shrink et first ont été ajoutés dans Julia 1.11.
Base.keytype — Functionkeytype(T::Type{<:AbstractArray})
keytype(A::AbstractArray)Renvoie le type de clé d'un tableau. Cela est égal à l'eltype du résultat de keys(...), et est fourni principalement pour la compatibilité avec l'interface de dictionnaire.
Exemples
julia> keytype([1, 2, 3]) == Int
true
julia> keytype([1 2; 3 4])
CartesianIndex{2}Pour les tableaux, cette fonction nécessite au moins Julia 1.2.
keytype(type)Obtenez le type de clé d'un type de dictionnaire. Se comporte de manière similaire à eltype.
Exemples
julia> keytype(Dict(Int32(1) => "foo"))
Int32Base.valtype — Functionvaltype(T::Type{<:AbstractArray})
valtype(A::AbstractArray)Retourne le type de valeur d'un tableau. Cela est identique à eltype et est fourni principalement pour la compatibilité avec l'interface de dictionnaire.
Exemples
julia> valtype(["one", "two", "three"])
StringPour les tableaux, cette fonction nécessite au moins Julia 1.2.
valtype(type)Obtenez le type de valeur d'un type de dictionnaire. Se comporte de manière similaire à eltype.
Exemples
julia> valtype(Dict(Int32(1) => "foo"))
StringEntièrement mis en œuvre par :
Partiellement mis en œuvre par :
Set-Like Collections
Base.AbstractSet — TypeAbstractSet{T}Supertype pour les types similaires à des ensembles dont les éléments sont de type T. Set, BitSet et d'autres types sont des sous-types de cela.
Base.Set — TypeSet{T} <: AbstractSet{T}Les Set sont des conteneurs mutables qui fournissent des tests d'appartenance rapides.
Les Set ont des implémentations efficaces des opérations sur les ensembles telles que in, union et intersect. Les éléments d'un Set sont uniques, comme déterminé par la définition de isequal des éléments. L'ordre des éléments dans un Set est un détail d'implémentation et ne peut pas être pris en compte.
Voir aussi : AbstractSet, BitSet, Dict, push!, empty!, union!, in, isequal
Exemples
julia> s = Set("aaBca")
Set{Char} avec 3 éléments :
'a'
'c'
'B'
julia> push!(s, 'b')
Set{Char} avec 4 éléments :
'a'
'b'
'B'
'c'
julia> s = Set([NaN, 0.0, 1.0, 2.0]);
julia> -0.0 in s # isequal(0.0, -0.0) est faux
false
julia> NaN in s # isequal(NaN, NaN) est vrai
trueBase.BitSet — TypeBitSet([itr])Construit un ensemble trié d'Ints généré par l'objet itérable donné, ou un ensemble vide. Implémenté sous forme de chaîne de bits, et donc conçu pour des ensembles d'entiers denses. Si l'ensemble doit être clairsemé (par exemple, contenant quelques très grands entiers), utilisez Set à la place.
Base.IdSet — TypeIdSet{T}([itr])
IdSet()IdSet{T}() construit un ensemble (voir Set) en utilisant === comme égalité avec des valeurs de type T.
Dans l'exemple ci-dessous, les valeurs sont toutes isequal donc elles sont écrasées dans l'ordinaire Set. L'IdSet compare par === et préserve donc les 3 valeurs différentes.
Exemples
julia> Set(Any[true, 1, 1.0])
Set{Any} avec 1 élément :
1.0
julia> IdSet{Any}(Any[true, 1, 1.0])
IdSet{Any} avec 3 éléments :
1.0
1
trueBase.union — Functionunion(s, itrs...)
∪(s, itrs...)Construit un objet contenant tous les éléments distincts de tous les arguments.
Le premier argument contrôle le type de conteneur qui est retourné. Si c'est un tableau, il maintient l'ordre dans lequel les éléments apparaissent pour la première fois.
Le symbole Unicode ∪ peut être tapé en écrivant \cup puis en appuyant sur tab dans le REPL Julia, et dans de nombreux éditeurs. C'est un opérateur infixe, permettant s ∪ itr.
Voir aussi unique, intersect, isdisjoint, vcat, Iterators.flatten.
Exemples
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...)Construit l'union des ensembles passés et écrase s avec le résultat. Maintient l'ordre avec les tableaux.
Le comportement peut être inattendu lorsque tout argument muté partage de la mémoire avec un autre argument.
Exemples
julia> a = Set([3, 4, 5]);
julia> union!(a, 1:2:7);
julia> a
Set{Int64} avec 5 éléments :
5
4
7
3
1Base.intersect — Functionintersect(s, itrs...)
∩(s, itrs...)Construit l'ensemble contenant les éléments qui apparaissent dans tous les arguments.
Le premier argument contrôle le type de conteneur qui est retourné. Si c'est un tableau, il maintient l'ordre dans lequel les éléments apparaissent pour la première fois.
Le symbole Unicode ∩ peut être tapé en écrivant \cap puis en appuyant sur tab dans le REPL Julia, et dans de nombreux éditeurs. C'est un opérateur infixe, permettant s ∩ itr.
Voir aussi setdiff, isdisjoint, issubset, issetequal.
À partir de Julia 1.8, intersect retourne un résultat avec le eltype des eltypes promus des deux entrées.
Exemples
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...)Construit l'ensemble des éléments dans s mais pas dans aucun des itérables dans itrs. Maintient l'ordre avec des tableaux.
Voir aussi setdiff!, union et intersect.
Exemples
julia> setdiff([1,2,3], [3,4,5])
2-element Vector{Int64}:
1
2Base.setdiff! — Functionsetdiff!(s, itrs...)Supprime de l'ensemble s (sur place) chaque élément de chaque itérable de itrs. Maintient l'ordre avec les tableaux.
Le comportement peut être inattendu lorsque tout argument modifié partage de la mémoire avec un autre argument.
Exemples
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...)Construit la différence symétrique des éléments dans les ensembles passés. Lorsque s n'est pas un AbstractSet, l'ordre est maintenu.
Voir aussi symdiff!, setdiff, union et intersect.
Exemples
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...)Construit la différence symétrique des ensembles passés en paramètres et écrase s avec le résultat. Lorsque s est un tableau, l'ordre est maintenu. Notez que dans ce cas, la multiplicité des éléments est importante.
Le comportement peut être inattendu lorsque tout argument muté partage de la mémoire avec un autre argument.
Base.intersect! — Functionintersect!(s::Union{AbstractSet,AbstractVector}, itrs...)Intersectionnez tous les ensembles passés et écrasez s avec le résultat. Maintenez l'ordre avec les tableaux.
Le comportement peut être inattendu lorsque tout argument muté partage de la mémoire avec un autre argument.
Base.issubset — Functionissubset(a, b) -> Bool
⊆(a, b) -> Bool
⊇(b, a) -> BoolDéterminez si chaque élément de a est également dans b, en utilisant in.
Voir aussi ⊊, ⊈, ∩, ∪, contains.
Exemples
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) -> BoolSi x est dans s, retourne true. Sinon, ajoute x à s et retourne false. Cela équivaut à in(x, s) ? true : (push!(s, x); false), mais peut avoir une implémentation plus efficace.
Cette fonction nécessite au moins 1.11.
Exemples
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) -> BoolNégation de ⊆ et ⊇, c'est-à-dire vérifie que a n'est pas un sous-ensemble de b.
Exemples
julia> (1, 2) ⊈ (2, 3)
true
julia> (1, 2) ⊈ (1, 2, 3)
falseBase.:⊊ — Function⊊(a, b) -> Bool
⊋(b, a) -> BoolDétermine si a est un sous-ensemble de, mais pas égal à, b.
Exemples
julia> (1, 2) ⊊ (1, 2, 3)
true
julia> (1, 2) ⊊ (1, 2)
falseBase.issetequal — Functionissetequal(a, b) -> BoolDéterminez si a et b ont les mêmes éléments. Équivalent à a ⊆ b && b ⊆ a mais plus efficace lorsque c'est possible.
Voir aussi : isdisjoint, union.
Exemples
julia> issetequal([1, 2], [1, 2, 3])
false
julia> issetequal([1, 2], [2, 1])
trueissetequal(x)Créez une fonction qui compare son argument à x en utilisant issetequal, c'est-à-dire une fonction équivalente à y -> issetequal(y, x). La fonction retournée est de type Base.Fix2{typeof(issetequal)}, qui peut être utilisée pour implémenter des méthodes spécialisées.
Cette fonctionnalité nécessite au moins Julia 1.11.
Base.isdisjoint — Functionisdisjoint(a, b) -> BoolDéterminez si les collections a et b sont disjointes. Équivalent à isempty(a ∩ b) mais plus efficace lorsque c'est possible.
Voir aussi : intersect, isempty, issetequal.
Cette fonction nécessite au moins Julia 1.5.
Exemples
julia> isdisjoint([1, 2], [2, 3, 4])
false
julia> isdisjoint([3, 1], [2, 4])
trueisdisjoint(x)Créez une fonction qui compare son argument à x en utilisant isdisjoint, c'est-à-dire une fonction équivalente à y -> isdisjoint(y, x). La fonction retournée est de type Base.Fix2{typeof(isdisjoint)}, qui peut être utilisée pour implémenter des méthodes spécialisées.
Cette fonctionnalité nécessite au moins Julia 1.11.
Entièrement mis en œuvre par :
Partiellement mis en œuvre par :
Dequeues
Base.push! — Functionpush!(collection, items...) -> collectionInsérer un ou plusieurs items dans collection. Si collection est un conteneur ordonné, les éléments sont insérés à la fin (dans l'ordre donné).
Exemples
julia> push!([1, 2, 3], 4, 5, 6)
6-element Vector{Int64}:
1
2
3
4
5
6Si collection est ordonné, utilisez append! pour ajouter tous les éléments d'un autre conteneur. Le résultat de l'exemple précédent est équivalent à append!([1, 2, 3], [4, 5, 6]). Pour les objets AbstractSet, union! peut être utilisé à la place.
Voir sizehint! pour des notes sur le modèle de performance.
Voir aussi pushfirst!.
Base.pop! — Functionpop!(collection) -> itemSupprime un élément dans collection et le retourne. Si collection est un conteneur ordonné, le dernier élément est retourné ; pour les conteneurs non ordonnés, un élément arbitraire est retourné.
Voir aussi : popfirst!, popat!, delete!, deleteat!, splice!, et push!.
Exemples
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!(collection, key[, default])Supprime et retourne le mappage pour key s'il existe dans collection, sinon retourne default, ou lance une erreur si default n'est pas spécifié.
Exemples
julia> d = Dict("a"=>1, "b"=>2, "c"=>3);
julia> pop!(d, "a")
1
julia> pop!(d, "d")
ERROR: KeyError: key "d" not found
Stacktrace:
[...]
julia> pop!(d, "e", 4)
4Base.popat! — Functionpopat!(a::Vector, i::Integer, [default])Supprime l'élément à l'index i donné et le retourne. Les éléments suivants sont décalés pour combler le vide résultant. Lorsque i n'est pas un index valide pour a, retourne default, ou lance une erreur si default n'est pas spécifié.
Voir aussi : pop!, popfirst!, deleteat!, splice!.
Cette fonction est disponible depuis Julia 1.5.
Exemples
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)
ERROR: BoundsError: attempt to access 3-element Vector{Int64} at index [4]
[...]Base.pushfirst! — Functionpushfirst!(collection, items...) -> collectionInsère un ou plusieurs items au début de collection.
Cette fonction est appelée unshift dans de nombreux autres langages de programmation.
Exemples
julia> pushfirst!([1, 2, 3, 4], 5, 6)
6-element Vector{Int64}:
5
6
1
2
3
4Base.popfirst! — Functionpopfirst!(collection) -> itemSupprime le premier item de collection.
Cette fonction s'appelle shift dans de nombreux autres langages de programmation.
Voir aussi : pop!, popat!, delete!.
Exemples
julia> A = [1, 2, 3, 4, 5, 6]
6-element Vector{Int64}:
1
2
3
4
5
6
julia> popfirst!(A)
1
julia> A
5-element Vector{Int64}:
2
3
4
5
6Base.insert! — Functioninsert!(a::Vector, index::Integer, item)Insérer un item dans a à l'index donné. index est l'index de item dans le a résultant.
Voir aussi : push!, replace, popat!, splice!.
Exemples
julia> insert!(Any[1:6;], 3, "here")
7-element Vector{Any}:
1
2
"here"
3
4
5
6Base.deleteat! — Functiondeleteat!(a::Vector, i::Integer)Supprime l'élément à l'index i donné et retourne le a modifié. Les éléments suivants sont décalés pour combler le vide résultant.
Voir aussi : keepat!, delete!, popat!, splice!.
Exemples
julia> deleteat!([6, 5, 4, 3, 2, 1], 2)
5-element Vector{Int64}:
6
4
3
2
1deleteat!(a::Vector, inds)Supprime les éléments aux indices donnés par inds, et retourne le a modifié. Les éléments suivants sont décalés pour combler le vide résultant.
inds peut être soit un itérateur, soit une collection d'indices entiers triés et uniques, ou un vecteur booléen de la même longueur que a avec true indiquant les entrées à supprimer.
Exemples
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))
ERROR: ArgumentError: indices must be unique and sorted
Stacktrace:
[...]Base.keepat! — Functionkeepat!(a::Vector, inds)
keepat!(a::BitVector, inds)Supprime les éléments à tous les indices qui ne sont pas donnés par inds, et retourne le a modifié. Les éléments qui sont conservés sont décalés pour remplir les espaces résultants.
Le comportement peut être inattendu lorsque tout argument muté partage de la mémoire avec un autre argument.
inds doit être un itérateur d'indices entiers triés et uniques. Voir aussi deleteat!.
Cette fonction est disponible depuis Julia 1.7.
Exemples
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})La version en place de l'indexation logique a = a[m]. C'est-à-dire que keepat!(a, m) sur des vecteurs de même longueur a et m supprimera tous les éléments de a pour lesquels m à l'index correspondant est false.
Exemples
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]) -> itemSupprime l'élément à l'index donné et retourne l'élément supprimé. Les éléments suivants sont décalés vers la gauche pour combler le vide résultant. Si spécifié, les valeurs de remplacement d'une collection ordonnée seront insérées à la place de l'élément supprimé.
Voir aussi : replace, delete!, deleteat!, pop!, popat!.
Exemples
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
-1Pour insérer replacement avant un index n sans supprimer d'éléments, utilisez splice!(collection, n:n-1, replacement).
splice!(a::Vector, indices, [replacement]) -> itemsSupprime les éléments aux indices spécifiés et renvoie une collection contenant les éléments supprimés. Les éléments suivants sont décalés vers la gauche pour combler les espaces résultants. Si spécifié, les valeurs de remplacement d'une collection ordonnée seront insérées à la place des éléments supprimés ; dans ce cas, indices doit être un AbstractUnitRange.
Pour insérer replacement avant un index n sans supprimer d'éléments, utilisez splice!(collection, n:n-1, replacement).
Le comportement peut être inattendu lorsque tout argument muté partage de la mémoire avec un autre argument.
Avant Julia 1.5, indices devait toujours être un UnitRange.
Avant Julia 1.8, indices devait être un UnitRange si des valeurs de remplacement étaient insérées.
Exemples
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) -> VectorRedimensionne a pour contenir n éléments. Si n est inférieur à la longueur actuelle de la collection, les premiers n éléments seront conservés. Si n est supérieur, les nouveaux éléments ne sont pas garantis d'être initialisés.
Exemples
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.Pour un conteneur ordonné collection, ajoutez les éléments de chaque collections à la fin de celui-ci.
Spécifier plusieurs collections à ajouter nécessite au moins Julia 1.6.
Exemples
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
6Utilisez push! pour ajouter des éléments individuels à collection qui ne sont pas déjà dans une autre collection. Le résultat de l'exemple précédent est équivalent à push!([1, 2, 3], 4, 5, 6).
Voir sizehint! pour des notes sur le modèle de performance.
Voir aussi vcat pour les vecteurs, union! pour les ensembles, et prepend! et pushfirst! pour l'ordre opposé.
Base.prepend! — Functionprepend!(a::Vector, collections...) -> collectionInsère les éléments de chaque collections au début de a.
Lorsque collections spécifie plusieurs collections, l'ordre est maintenu : les éléments de collections[1] apparaîtront le plus à gauche dans a, et ainsi de suite.
Spécifier plusieurs collections à préfixer nécessite au moins Julia 1.6.
Exemples
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
6Entièrement mis en œuvre par :
Utility Collections
Core.Pair — TypePair(x, y)
x => yConstruisez un objet Pair de type Pair{typeof(x), typeof(y)}. Les éléments sont stockés dans les champs first et second. Ils peuvent également être accessibles via l'itération (mais un Pair est traité comme un "scalaire" unique pour les opérations de diffusion).
Voir aussi Dict.
Exemples
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)}Transforme un conteneur indexable en une vue de dictionnaire des mêmes données. Modifier l'espace des clés des données sous-jacentes peut invalider cet objet.