# Left rotate an array by D places in Python

In this post, we will discuss some methods to left rotate an array by D places in Python.

## Left rotate an array by D places in Python

You are given an array and value of D (number of places by which the array is to left rotated).

```Input: arr=[2,9,4,55,64,3,1]    D=2

Output: [4,55,64,3,1,2,9]```

### Method-1:

In this method, we take a temporary array in which we take the D number of elements from `arr` from starting and store it in this temporary array. Then we left shift the rest of the elements by D places in arr and then copy back the elements of `temp` array to arr.

```#Function to populate temp array
def fillTemp(arr, D, n):
temp=[]
for i in range(D):
temp.append(arr[i])
leftRot(arr,D,n,temp)

#Function to rotate array by D places
def leftRot(arr,D,n,temp):
for i in range(n-D):
arr[i]=arr[D+i]
for j in range(D):
arr[n-D+j]=temp[j]

# Driver program
arr = [2,9,4,55,64,3,1]
size=len(arr)
D=2
fillTemp(arr, D, size)
#Printing Array
for i in range(size):
print ("{}".format(arr[i]),end=" ")

```
```Output:

4,55,64,3,1,2,9```

Time Complexity: O(n)

Space Complexity: O(D)

### Method-2:

In this method, we left rotate array by rotating each element one by one. We repeat this process D times. We store the first element of `arr` in a temp variable and then rotate each element by one place and then place this `temp` variable value at the last index of `arr`.

```#Function to left rotate arr
def leftRot(arr, D, size):
for j in range(D):
RotOneByOne(arr, size)

#Function to left Rotate elements one by one
def RotOneByOne(arr, size):
temp = arr
for k in range(size-1):
arr[k] = arr[k+1]
arr[size-1] = temp

# Driver program
arr = [2,9,4,55,64,3,1]
size=len(arr)
D=2
leftRot(arr, D, size)
#Printing Array
for i in range(size):
print ("{}".format(arr[i]))

```
```Output:

4,55,64,3,1,2,9```

Time Complexity: O(n*D)

Space Complexity: O(1)