The first, [:], is creating a slice (normally often used for getting just part of a list), which happens to contain the entire list, and thus is effectively a copy of the list. The second, list(), is using the actual list type constructor to create a new list which has contents equal to the first list.
The first way works for a list or a string; the second way only works for a list, because slice assignment isn't allowed for strings. Other than that I think the only difference is speed: it looks like it's a little faster the first way. Try it yourself with timeit.timeit () or preferably timeit.repeat ().
A List uses an internal array to handle its data, and automatically resizes the array when adding more elements to the List than its current capacity, which makes it more easy to use than an array, where you need to know the capacity beforehand.
@Sandy Chapman: List.of does return some ImmutableList type, its actual name is just a non-public implementation detail. If it was public and someone cast it to List again, where was the difference? Where is the difference to Arrays.asList, which returns a non-public List implementation, that throws an exception when attempting add or remove, or the list returned by Collections ...
A list of lists would essentially represent a tree structure, where each branch would constitute the same type as its parent, and its leaf nodes would represent values.
Don't use quotes on the command line 1 Don't use type=list, as it will return a list of lists This happens because under the hood argparse uses the value of type to coerce each individual given argument you your chosen type, not the aggregate of all arguments. You can use type=int (or whatever) to get a list of ints (or whatever)
Also, in the web version of Gmail in a desktop/laptop, click the Contacts icon in the right hand side bar. It will open showing the contacts in the current highlighted email; there is a drop down menu there, select "Contacts". All contacts will be seen, various options then available.
(List<Customer>)(Object)list; you must be sure that at runtime the list contains nothing but Customer objects. Critics say that such casting indicates something wrong with your code; you should be able to tweak your type declarations to avoid it. But Java generics is too complicated, and it is not perfect. Sometimes you just don't know if there is a pretty solution to satisfy the compiler ...