What is the difference between the append and extend methods for a list in Python?
The extend method requires an iterable such as a list as input. When it is called, it will add the elements of the input to the list one at a time, each as a single item in the original list.

The append method can take any type of data as input. When it is called, it will add the entire input to the list as a single item.

Here is an example the illustrates the difference.

```python
# using extend
a = [red, green, blue]
b = [shirt, shoes, belt]

a.extend(b)
print(a) #displays ['red', 'green', 'blue', 'shirt', 'shoes', 'belt'] 

# using append
a = [red, green, blue]
b = [shirt, shoes, belt]

a.append(b)
print(a) # displays ['red', 'green', 'blue', ['shirt', 'shoes', 'belt']]
```
As you can see, lists a and b each have three items.

In the first example, using extend, the elements of list b are added to list a each as one item, resulting in a list of six items.

In the second example, using append, the entirety of list b is added to list a as a single item, resulting in a list of four items.
How would I want to use them? Which is better?
The choice depends on what your specific use case as they perform different operations

If you want to join two lists, you should use extend. This is because extend will add each element in `b` to `a`
If you want to make list `b` an element of list `a`, you should use append. This is because append will add the entire `b` list as a single element to `a`. This will cause the lists to become nested rather than a single one-dimensional array

Ultimately, neither method is better as they are both used in different contexts