The main difference between these two are, mainly Double brackets accesses a list element whereas a single element gives back a list with a single element.
E.x.
lst <- list('one','two','three')
q <- lst[1]
class(q)
## returns "list"
q <- lst[[1]]
class(q)
## returns "character"
Hope this helps.