Efficiently using data structures to collect, organise and retrieve information is one of the core abilities modern computer engineers are expected to have. This student-friendly textbook provides a complete view of data structures and algorithms using the Python programming language, striking a balance between theory and practical application. All major algorithms have been discussed and analysed in detail, and the corresponding codes in Python have been provided. Diagrams and examples have been extensively used for better understanding. Running time complexities are also discussed for each algorithm, allowing the student to better understand how to select the appropriate one. Written with both undergraduate and graduate students in mind, the book will also be helpful with competitive examinations for engineering in India such as GATE and NET. As such, it will be a vital resource for students as well as professionals who are looking for a handbook on data structures in Python.