diff --git a/README.md b/README.md
index fa8ee98..e4ed906 100644
--- a/README.md
+++ b/README.md
@@ -2,24 +2,69 @@
> *Click ★ if you like the project. Your contributions are heartily ♡ welcome.*
-
+
-## Q. How can you improve the following code?
+## Table of Contents
-```py
-import string
+* [Introduction](#-1-introduction): (Python compilation, bytecode, and VMs)
+* [Data Types](#-2-data-types): Data Types & Built-in Scalar Types
+* [Dictionary](#-3-dictionary): Hash maps, hash collisions, and Python 3.6+ ordering
+* [Operators](#-4-operators): Operators & Bitwise Operations
+* [Control Flow Statements](#-5-control-flow-statements): Control Flow Statements & Optimization
+* [Core Data Structures](#-6-core-data-structures): Lists, Tuples, Sets, Deques
+* [Functions](#-7-functions): Scope, LEGB rule, args/kwargs, closures
+* [Lambda Functions](#-8-lambda-functions): Lambda Functions & Functional Programming Patterns
+* [Modules and Packages](#-9-modules-and-packages): Import system, sys.modules, namespace packages
+* [Object-Oriented Programming](#-10-object-oriented-programming): MRO, C3 Linearization, Descriptors, Metaclasses
+* [Exception Handling](#-11-exception-handling): EAFP vs LBYL, custom exceptions, traceback overhead
+* [File Handling](#-12-file-handling): Streams, text vs binary
+* [Memory Management](#-13-memory-management): Object allocation, PyMalloc, small object caching
+* [Garbage Collector](#-14-garbage-collector): Reference counting, generational collection, cyclic references
+* [Mutable vs Immutable](#-15-mutable-vs-immutable): Hashability, identity vs equality, side-effects
+* [Iterators and Generators](#-16-iterators-and-generators): Iteration protocol, lazy evaluation, memory efficiency
+* [Decorators](#-17-decorators): Function decorators, class decorators, functools.wraps, stateful decorators
+* [Context Managers](#-18-context-managers): Context management protocol, contextlib, resource management
+* [Concurrency and Parallelism](#-19-concurrency-and-parallelism): Threading, Multiprocessing, Asyncio, Event loop, GIL
+* [Testing and Debugging](#-20-testing-and-debugging): Unittest, Pytest fixtures, Mocking, profiling with cProfile
+* [Miscellaneous](#-21-miscellaneous): Dunder methods, Typing/Type hinting, slots optimization
-i = 0
-for letter in string.letters:
- print("The letter at index %i is %s" % (i, letter))
- i = i + 1
-```
+**Python for AI & Data Science**
-Bonus points for mentioning `enumerate` and use of `str.format`.
+* [Numerical Computing](#-22-numerical-computing): NumPy arrays, vectorisation
+* [Data Manipulation](#-23-data-manipulation): Pandas DataFrames, Series
+* [Data Visualisation](#-24-data-visualisation): Matplotlib, Seaborn
+* [Machine Learning Libraries](#-25-machine-learning-libraries): Scikit-Learn
+* [Deep Learning Frameworks](#-26-deep-learning-frameworks): PyTorch, TensorFlow
+* [Model Evaluation Metrics](#-27-model-evaluation-metrics): Precision, Recall, F1
-
— Print an expression
## Q. What command do we use to debug a Python program? @@ -2752,174 +8685,351 @@ C:\Users\lifei\Desktop>python -m pdb try.py Then, we can start debugging. -## Q. What is a Counter in Python? +## Q. What are the tools that help to find bugs or perform static analysis? -Ans. The function Counter() from the module 'collections'. It counts the number of occurrences of the elements of a container. +PyChecker is a static analysis tool that detects the bugs in Python source code and warns about the style and complexity of the bug. Pylint is another tool that verifies whether the module meets the coding standard. - from collections import Counter - Counter([1,3,2,1,4,2,1,3,1]) +## Q. What is unittest in Python? What\'s your approach to unit testing in Python? + +A unit testing framework in Python is known as unittest. It supports sharing of setups, automation testing, shutdown code for tests, aggregation of tests into collections etc. + +The most fundamental answer to this question centers around Python\'s unittest testing framework. Basically, if a candidate doesn\'t mention unittest when answering this question, that should be a huge red flag. + +`unittest` supports test automation, sharing of setup and shutdown code for tests, aggregation of tests into collections, and independence of the tests from the reporting framework. The unittest module provides classes that make it easy to support these qualities for a set of tests. + +Assuming that the candidate does mention unittest (if they don\'t, you may just want to end the interview right then and there!), you should also ask them to describe the key elements of the unittest framework; namely, test fixtures, test cases, test suites and test runners. + +A more recent addition to the unittest framework is mock. mock allows you to replace parts of your system under test with mock objects and make assertions about how they are to be used. mock is now part of the Python standard library, available as unittest.mock in Python 3.3 onwards. + +The value and power of mock are well explained in An Introduction to Mocking in Python. As noted therein, system calls are prime candidates for mocking: whether writing a script to eject a CD drive, a web server which removes antiquated cache files from /tmp, or a socket server which binds to a TCP port, these calls all feature undesired side-effects in the context of unit tests. Similarly, keeping your unit-tests efficient and performant means keeping as much "slow code" as possible out of the automated test runs, namely filesystem and network access. + +[Note: This question is for Python developers who are also experienced in Java.] + +