What is the difference between args and kwargs in Python (default arguments Vs keyword arguments)
There are two types of arguments in a function which are positional arguments (declared by a name only) and keyword arguments (declared by a name and a default value).
When a function is called, values for positional arguments must be given. Keywords arguments are optional (they take the default value if not specified).
**args collects the positional arguments that are not explicitly defined and store them in a tuple
**kwargs does the same as **args but for keyword arguments. They are stored in a dictionary because keyword arguments are stored as name-value pairs.
Python does not allow positional arguments to follow keyword arguments. Thus, we first declare positional arguments and then keyword arguments.
Differences between a list and an array in python
- A list is a container of objects and can hold elements of different data types
- Lists are built-in data types in python, so no import is needed to use them
- A list is flexible and can be changed after its creation.
- Some arithmetic operations are supported and they are not element-wise
- An entire list can be printed without a loop
- A list does not use memory efficiently and is typically slower than an array
- An array is a container of objects and can hold elements of the same data type only
- Arrays are not built-in data types in python, so an import is needed to use them
- Once an array is defined, its size is fixed and cannot be changed
- All arithmetic operations are supported and are element-wise
- A loop is needed to print an entire array
- An array uses memory efficiently and is typically faster than a list
Though lists and arrays are containers of data and can be indexed and sliced, there are many differences between them:
|
A list is a container of objects and can hold elements having different data types.
An array is a container of objects and can hold elements of the same data type only. |
Lists are built-in data types in python, so no import is needed to use them
Arrays are not built-in data types in python, so an import is needed to use them |
Not all arithmetic operations are supported and supported ones are not element-wise
All arithmetic operations are supported and are element-wise |
A list is flexible and can change after its creation. Elements can be added, deleted or modified
Once the array is defined, the space it occupies in memory, a combination of the number of its elements and the size of each element, is fixed and cannot be changed. The only thing you can do is to create a new array and replace some of its elements by the elements of the original array. |
An entire list can be printed without a loop
A loop is needed to print an entire array |
A list does not use memory efficiently and is typically slower than an array
An array uses memory efficiently and is typically faster than a list |