Thank you. It solved my problem
On Friday, July 3, 2015 at 5:54:12 PM UTC+2, Kevin Squire wrote: > > I updated the README with another example based on this discussion. > > Cheers! > Kevin > > On Fri, Jul 3, 2015 at 7:51 AM, Yichao Yu <yyc...@gmail.com <javascript:>> > wrote: > >> On Fri, Jul 3, 2015 at 10:40 AM, Yichao Yu <yyc...@gmail.com >> <javascript:>> wrote: >> > On Fri, Jul 3, 2015 at 9:42 AM, Ali Rezaee <arv....@gmail.com >> <javascript:>> wrote: >> >> Thank you. What would be the work around? How can I push values to >> >> defaultdict without changing any other value? >> > >> > The README I linked is exactly about that. >> >> And quote it here for future reference: >> >> > Note that in the last example, we need to use a function to create each >> new `DefaultDict`. If we forget, we will end up using the same >> `DefaultDict` for all default values: >> >> In their case, the value of a parent DefaultDict is also a DefaultDict >> so it might be a little confusing. You can pretty much replace the >> DefaultDict above by `Array` and it will apply to your case directly. >> >> >> > >> >> >> >> On Friday, July 3, 2015 at 3:35:39 PM UTC+2, Yichao Yu wrote: >> >>> >> >>> On Fri, Jul 3, 2015 at 9:29 AM, Ali Rezaee <arv....@gmail.com> wrote: >> >>> > Hi, >> >>> > >> >>> > I have the following code: >> >>> > >> >>> > using DataStrucures >> >>> > d= DefaultDict(ASCIIString,Array{Int64},Array{Int64}(0)) >> >>> > >> >>> > push!(d["A"],2) >> >>> > push!(d["B"],3) >> >>> > >> >>> > d >> >>> > >> DataStructures.DefaultDict{ASCIIString,Array{Int64,N},Array{Int64,1}} >> >>> > with 2 >> >>> > entries: >> >>> > "B" => [2,3] >> >>> > "A" => [2,3] >> >>> > >> >>> > >> >>> > Isn't it unexpected that when I push to any key, the value is >> pushed to >> >>> > all >> >>> > the other keys as well? >> >>> >> >>> Yes, pretty much. Because the default value is stored by reference and >> >>> you are mutating it with `push!` >> >>> >> >>> See the last paragraph of the corresponding section in the >> >>> DataStructures.jl README[1] >> >>> >> >>> [1] >> >>> >> https://github.com/JuliaLang/DataStructures.jl#defaultdict-and-defaultordereddict >> >>> >> >>> > >> >>> > Thanks :) >> > >