Answer:
1. Python is called as interpreted language. However as a programming language it is not fully compiled nor interpreted language. Python program runs from direct source code which makes it byte code interpreted.
An Interpreter is the one which takes the code and performs the actions specified in the code. It turns the code into intermediate language which is again translated to machine language understood by the processor. Interpreted or compiled are the property of the implementation and not of the language.
2. Array : It is a collection of same data type elements stored at contagious memory location. It is handled in python with module array. All the elements of array must be of same data type. In order to manipulate same data types arrays are used.
Ex: array1 = a.array ('i', [10, 20, 30]) this is a array of integer type.
Lists : Python lists are ordered data structure and are like non homogeneous dynamic sized arrays. It may contain integers, strings, boolean, or objects.
Ex: List1 = [70, 89, 98] , List2 = ["Rose", "Lilly", "Jasmine"]
List3 = [1, 10, 100, 'Test', 'Test1']
Tuple : It is a collection of objects separated by commas and they are immutable. It is static which makes them faster.
Ex: tupule1 = ('element1', 'element2')
List and Tuple in Python are the class of data structure. The list is dynamic, whereas tuple has static characteristics.
Lists are mutable but tuples are not.
tuples are mainly used to access the elements where as lists are used in operations like insertion and deletion.
Iterations are time consuming in list where as it is faster in tuples.
tuples don't have inbuilt methods but list has many builtin methods.
tuples takes slightly less memory that lists in Python
Records: Records data structure will have fixed number of fields and each field may have a name and different type. Immutable records are implemented using named tuple.
3. Syntax of slice in python is list[<start>:<stop>:<step>] and it can be used on tuples and lists.
so X [::-1] means that it will start from the end towards the first element by taking each of the elements.
for ex: X = '9876'
X [::-1] will result in '6789'.
Means it will reverse all the elements in the array.
4. Items of list can be shuffled with the random.shuffle() function of a random module.
Syntax is : random.shuffle(x, random)
x- It is a sequence to shuffle and can be list or tuple.
random- it is a optional argument which returns random float number between 0.1 to 1.0.
5. range() – Range function returns a range object which is a type of iterable object.
xrange() – xrange function returns the generator object that can be used to display numbers only by looping. Only particular range is displayed on demand and hence called “lazy evaluation“.
• Return type of range () is range object whereas that of xrange() is xrange object.
• Variable to store the range using range () takes more memory but xrange takes comparative less memory.
• Range returns the list but xrange returns the xrange object. Hence operations on list can be applied for range but not on xrange.
• Xrange is faster to implement than range as xrange evaluates only generator objects.
• Xrange is depreciated in Python 3 and above.
For ex :
x = range (10, 100)
y= xrange (10, 100)
#To know the return type we can print it
print ( return type of range () is : “)
print (type (x))
print ( return type of xrange () is : “)
print (type (y))
Output will be list and xrange respectively.
6. NumPy's arrays are more compact than Python lists
reading and writing items is also faster with NumPy.
Memory taken by python lists are way higher than NumPy arrays.
Python lists don’t support vectorized operation.
Since lists can contain objects of different types its type information must be stored and executed every time operation is performed on it.
Memory taken by python lists are a lot higher than that of NumPy Arrays.
Reading and writing of elements in NumPy arrays are faster than lists.
NumPy arrays are compact and accumulate lesser storage.
Numpy is convenient and efficient.
For ex :
Metrics operations are easy in NumPy.
Checkerboard pattern can be done using NumPy.
7. Attached as Image
8. split() method returns a list of strings after breaking the given string by the specified separator. It is splitting of string into list with each word is a list item.
Syntax : str.split ( separator, maxsplit)
Separator : its is delimiter used and by default whitespace is used as separator.
Maxsplit : Maximum number of times to split the string. By default it has no limit.
For ex:
text = 'apples and oranges are different '
print(text.split())
output will be : ['apples', 'and', 'oranges', 'are', 'different' ]
Explanation: